Использование утилиты Rsync на VPS
08:42, 28.04.2022
Rsync – программное обеспечение, позволяющее синхронизировать файлы удаленно или локально на VPS и VDS. Ключевой особенностью утилиты является высочайшая скорость копирования, достигаемая благодаря игнорированию файлов, которые никак не изменились после последней синхронизации. Rsync является встроенной утилитой для большинства существующих дистрибутивов Linux, и при этом она практически не имеет бесплатных аналогов по скорости и удобству – этим обусловлена популярность у веб-мастеров по всему миру.
Основной синтаксис Rsync
Удаленная синхронизация с помощью Rsync работает по простому синтаксису, который схематически выглядит так:
# rsync -options
– это параметры утилиты, под подразумевается каталог или файл, являющийся источником, а – это приемник.
Рассмотрим наиболее часто используемые опции утилиты:
- -v – отладочный режим;
- -q – запрет вывода ошибок;
- -r – режим рекурсивного копирования;
- -a – архивирование с сохранением симлинков;
- -z – сжатие данных;
- -b – создание бэкапов;
- -h – вывод данных в human-readable формате.
Это лишь базовый набор параметров, которые можно активировать при работе с утилитой Rsync – в официальной документации можно найти намного более подробные гайды и мануалы, но для ознакомления потребуется владение английским.
Синхронизация с удаленной системой
При наличии локального доступа к серверу достаточно через командную строку указать две директории, источник и приемник:
rsync -avzhHl /path/of/source/folder /path/to/destination/folder
Если же резервирование данных необходимо выполнить удаленно, то в команду добавляем имя учетной записи и IP-адрес целевого узла:
rsync -avzhHl /path/of/source/folder root@192.168.56.1:/path/to/destination/folder
Корректная и безопасная работа для remote sync требует настройки доступа с помощью ключей, утилита это позволяет.
Как настроить автоматическую синхронизацию директорий
Чтобы автоматизировать процесс, нужно воспользоваться планировщиком задач cron, который также имеется на любой ОС на базе Linux. Сперва нужно создать скрипт:
vi rsync_to_cron.sh !/bin/sh RSYNC=/usr/bin/rsync SSH=/usr/bin/ssh KEY=/root/.ssh/id_rsa RUSER=root RHOST=192.168.56.1 RPATH=/remote/dir LPATH=/local/dir $RSYNC -az -e "$SSH -i $KEY" $RUSER@$RHOST:$RPATH $LPATH
Затем создаем задание для cron:
crontab -e 0 22 * * * /root/scripts/rsync_to_cron.sh
Ну а чтобы отслеживать процесс синхронизации, вы всегда можете воспользоваться ключом -progress:
rsync -avzhHl --progress /path/of/source/folder root@192.168.56.1:/path/to/destination/folder
Пример использования
Самым простым примером использования утилиты Rsync для удаленной синхронизации будет команда:
rsync -a --delete-after /data/ /backup/
Здесь мы даем команду на синхронизацию каталога /data с каталогом /backub. Ключ delete-after очистит каталог /backup от всех файлов, которые отсутствуют в директории /data. Параметр -a позволяет ускорить процесс, так как копироваться будут только измененные файлы.
Утилита позволяет копировать данные в обе стороны, при этом синтаксис Rsync позволяет активировать множество дополнительных режимов и опций. На этом мы заканчиваем наш материал и благодарим за внимание. Если потребуется
арендовать VPS – обращайтесь, наши специалисты помогут подобрать оптимальный тариф.