rsync (Remote Synchronization) — кроссплатформенное консольное приложение для синхронизации данных с минимальным потреблением трафика.
установка для CentOS:
yum -y install rsync
Для Debian/Ubuntu:
sudo aptitude install rsync
Приведу пример локальной синхронизации:
sudo rsync -avh --delete /var/www/ /root/backup/www/
Синхронизация данных на удаленный сервер:
sudo rsync -avh --delete /var/www/ root@192.168.1.50:/root/backup/www/
Синхронизация данных на локальный с удаленного сервера:
sudo rsync -avh root@192.168.1.50:/var/www/ /root/backup/www/
Через SSH с нестандартным портом:
sudo rsync -avh -e "ssh -p 1111" root@192.168.1.50:/var/www/ /root/backup/www/
Чтобы исключить какие нибудь поддиректории, например если мы синхронизируем /var/www/ и хотим исключить /var/www/dir/ и /var/www/dir/tmp/, то можно добавить к команде:
--exclude='dir/' --exclude='dir/tmp/'
Чтобы переместить файлы с удаленного сервера на локальный:
sudo rsync -avh --remove-source-files root@192.168.1.50:/var/www/ /var/www/
Пример копирования mysql данных на другой диск:
rsync -vrplogDtH –progress /var/lib/mysql/ /newhdd/var/lib/mysql/
Встроенную справку можно получить командой:
man rsync
В файле /etc/default/rsync можно настройки запуск rsync как демона.
При синхронизации с другими серверами на них тоже должен быть установлен rsync либо нужно указывать SSH.
Параметры запуска:
- -v (--verbose, подробный режим)
- -r (--recursive, копировать данные рекурсивно)
- -R (--relative, использовать относительные пути при создании символических ссылок)
- -a (--archive, режим архивирования, копировать данные рекурсивно с сохранением симлинков, прав доступа и прочей информации)
- -b (--backup, создание резервной копии, смотрите дополнительно —backup-dir=DIR и —suffix=SUFFIX)
- -c (--checksum, сверка по контрольным суммам, а не по времени изменения и размеру)
—delete (удаление файлов) - -f (--filter=RULE, создание правила фильтрования)
- -h (--human-readable, вывод данных в понятном для человека формате, смотрите также —progress)
- -H (--hard-links, сохранение жестких ссылок)
- -n (--dry-run, пробный режим без каких либо изменений)
- -p (--perms, сохранение прав)
- -z (--compress, сжатие данных при передаче, смотрите также —compress-level=NUM и —skip-compress=LIST)
- -x (--one-file-system, не выходить за пределы текущей точки монтирования)
- -q (--quiet, краткий режим)
- -W (--whole-file, полное копирование вместо копирования изменившихся данных)