Резервное копирование rsync
Резервное копирование каталогов на локальной машине
Основной синтаксис при синхронизации файлов на локальной машине следующий.
rsync [опции] [исходная директория] [конечная директория]
Если вы хотите сохранить метаданные, такие как право собственности, разрешения, дата создания и т.д. Вы должны использовать опцию -a. Если вы хотите рекурсивно копировать каталоги внутри каталога, используйте опцию -r.
rsync -ar [исходная директория] [конечная директория]
Аналогично, если вы хотите видеть прогресс в процессе синхронизации, используйте опцию -v. Команды должны выглядеть следующим образом,
rsync -avr [исходная директория] [конечная директория]
Предположим, мы хотим синхронизировать файлы и папки, расположенные по адресу Desktop/log с Karim/logro, команда должна выглядеть следующим образом.
rsync -avr ~/Desktop/* /data/backup/
Давайте обсудим еще один пример и скажем, что у нас есть папка 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' также являются полезной комбинацией.