Skip to main content

Резервное копирование rsync

Linux

Резервное копирование каталогов на локальной машине

Основной синтаксис при синхронизации файлов на локальной машине следующий.

rsync [опции] [исходная директория] [конечная директория]

Если вы хотите сохранить метаданные, такие как право собственности, разрешения, дата создания и т.д. Вы должны использовать опцию -a. Если вы хотите рекурсивно копировать каталоги внутри каталога, используйте опцию -r.

rsync -ar [исходная директория] [конечная директория]

Аналогично, если вы хотите видеть прогресс в процессе синхронизации, используйте опцию -v. Команды должны выглядеть следующим образом,

rsync -avr [исходная директория] [конечная директория]

Предположим, мы хотим синхронизировать файлы и папки, расположенные по адресу Desktop/log с Karim/logro, команда должна выглядеть следующим образом.

rsync -avr ~/Desktop/* /data/backup/

https://g-soft.info/wp-content/uploads/2022/09/pasted-1484.png

Давайте обсудим еще один пример и скажем, что у нас есть папка data-1, расположенная на жестком диске 1 (/media/hdd1/data-1), и вы хотите синхронизировать ее со вторым жестким диском по адресу /media/hdd2/. Полная команда должна выглядеть следующим образом.

rsync -avr /media/hdd1/data-1 /media/hdd2/

Команда при выполнении создаст каталог data-1 на втором жестком диске и скопирует все его содержимое по пути назначения /media/hdd2/.

Резервное копирование файлов и каталогов по сети

При передаче данных по сети синтаксис немного отличается. Если вы хотите синхронизировать локальный каталог с удаленным каталогом, команда должна выглядеть следующим образом.

rsync [-опции] [Исходная директория] [имя пользователя]@[IP адрес сервера назначения]:[rjytxyfz lbhtrnjhbz]

Предположим, у меня есть тестовая папка, расположенная на моей локальной машине по адресу /home/karim/testfolder, и я хочу синхронизировать ее по адресу /home/karim. Удаленный пользователь - 'user', а IP-адрес машины - 10.1.1.2. Выполните следующую команду в терминале.

rsync -avr /home/user/Desktop/ [email protected]:/home/user/

После выполнения этой команды вам будет предложено ввести пароль удаленной машины.

Если вы хотите синхронизировать удаленный каталог с локальным, команда должна выглядеть следующим образом.

rsync [-опции] [имя пользователя]@[IP адрес сервера назначения]:[Исходная директория] [Директория назначения]

Предположим, у нас есть удаленная папка 'testfolder', расположенная по адресу /home/user/, и я хочу синхронизировать ее с локальной машиной по адресу /home/user/. IP-адрес удаленной машины - 10.1.1.2, а имя пользователя - user.

Выполните следующую команду в терминале.

rsync -avr [email protected]:/home/user/ /home/user/

Как автоматизировать резервное копирование

Удобнее всего автоматизировать резервное копирование, чтобы системным инженерам не нужно было беспокоиться о ручном выполнении команд и создании резервных копий каждый день.

В Linux существует известный инструмент под названием 'crontab', который используется для автоматизации процесса резервного копирования. Мы можем запланировать выполнение всех вышеперечисленных команд ежедневно, еженедельно или ежемесячно. Если вы не установили crontab в своем дистрибутиве Linux, выполните следующие команды в терминале с привилегиями sudo.

apt-get update apt-get install cron

После установки crontab выполните следующую команду в терминале, чтобы открыть редактор crontab.

crontab -e

Примерный вывод должен выглядеть следующим образом.

Настройка резервного cronjob

В crontab есть следующие пять полей,

m h dm m dw команда

  • m: указывает минуту (0-59)
  • h: указывает час (0-23)
  • dm: указывает день месяца (1-31)
  • m: указывает месяц (1-12)
  • dw: указывает день недели (0-6, где 0 - воскресенье).

Возьмем предыдущий пример синхронизации каталога с одного диска на другой и скажем, что мы хотим делать это каждый день в 12 часов дня, задание cron должно быть следующим.

0 0 * * * rsync -avr /media/hdd1/data-1 /media/hdd2/

Предположим, вы хотите делать резервную копию каждый месяц в воскресенье в 12 часов дня, задание cron должно быть написано следующим образом.

0 0 1 * * * rsync -avr /media/hdd1/data-1 /media/hdd2/

Заключение

Вы прочитали, как мы можем создавать резервные копии с помощью чрезвычайно мощной команды 'rysnc'. В завершение статьи мы создали 'crontab'. 'rsync' и 'crontab' также являются полезной комбинацией.