Как создать резервную копию каталога Linux на удаленном компьютере с помощью rsync
Резервное копирование локального каталога на удаленный компьютер в Linux выполняется быстро и гибко с помощью этого инструмента командной строки Linux.
Linux — самая гибкая операционная система на рынке. С этой платформой с открытым исходным кодом вы можете сделать гораздо больше, чем с вашей проприетарной ОС, не тратя ни копейки на программное обеспечение.
Делая свои первые шаги в Linux, вы, вероятно, захотите избегать командной строки, потому что это может быть немного утомительно. Однако со временем вы можете обнаружить, что готовы увидеть, насколько больше мощности и гибкости вы можете получить от выбранного вами дистрибутива. Одна очень удобная (и полезная) вещь, которую вы можете сделать, — это научиться выполнять резервное копирование локального каталога в удаленный с помощью команды rsync. И это именно то, что я собираюсь вам показать.
Готовый? Давай сделаем это.
Как создать резервную копию каталога Linux с помощью rsync
Что вам понадобится: Чтобы это работало, вам понадобятся два экземпляра Linux: один для локального (в котором находится каталог, для которого вы хотите создать резервную копию), и один для удаленного (который вы хотите скопирую каталог до). Вам также понадобится пользователь с привилегиями sudo на обеих машинах. Наконец, вам нужно знать IP-адреса обеих машин (которые можно узнать с помощью команды ip a ). Я продемонстрирую это на двух машинах под управлением Ubuntu. Если вы используете дистрибутив на базе Fedora или Arch, единственное, что вам нужно изменить, — это команду установки.
1. Установите rsync на обе машины.
Первое, что нужно сделать, это установить rsync, что можно сделать с помощью следующей команды:
sudo apt-get install rsync -y
2. Настройте rsync на удаленном компьютере.
Далее нам нужно настроить rsync на удаленной машине. Создайте новый файл конфигурации с помощью команды:
sudo nano /etc/rsyncd.conf
В этот файл вставьте следующее содержимое:
[backup]
path=REMOTE_DIRECTORY
hosts allow = LOCAL_IP
hosts deny = *
list = true
uid = root
gid = root
read only = false
Где REMOTE_DIRECTORY — это каталог на удаленном компьютере, в котором будут храниться файлы резервной копии, а LOCAL_IP — это IP-адрес локального компьютера.
Сохраните и закройте файл с помощью сочетания клавиш Ctrl+X.
Запустите и включите rsync командой:
sudo systemctl enable --now rsync
3. Запустите резервное копирование
Теперь мы проверим процесс резервного копирования. На вашем локальном компьютере вы запустите команду rsync следующим образом:
rsync -avz LOCAL_DIRECTORY REMOTE_IP::backup
Где LOCAL_DIRECTORY — каталог, резервную копию которого вы хотите создать, а REMOTE_IP — IP-адрес удаленного компьютера. Обратите внимание на ::backup. Это имя резервной копии, которую мы использовали в файле конфигурации на удаленном компьютере (строка [backup]). Резервное копирование должно запуститься и завершиться довольно быстро (если в каталоге нет большого количества файлов).
Автоматизируйте резервное копирование
Как я уже сказал, Linux очень гибок. Мы можем автоматизировать этот процесс с помощью встроенного инструмента cron. Что мы сделаем, так это создадим bash-скрипт для резервного копирования с помощью команды:
nano rsync.sh
В этом файле введите ту же команду, которую вы использовали ранее для запуска резервного копирования, только мы добавим параметр q для подавления вывода, поэтому это выглядит так:
rsync -avzq LOCAL_DIRECTORY REMOTE_IP::backup
Сохраните и закройте файл. Дайте права на исполняемый файл с помощью команды:
chmod u+x rsync.sh
Теперь мы создадим задание cron с помощью команды:
sudo crontab -e
В этот файл вставьте следующее:
00 01 * * * /home/USER/rsync.sh
Где USER — ваше имя пользователя. Сохраните и закройте файл.
Ваше новое задание cron будет запускать резервное копирование rsync ежедневно в час ночи, поэтому у вас всегда будет свежая резервная копия этого каталога.
И это, друзья мои, все, что нужно для создания базового задания удаленного резервного копирования в Linux.