Приклад роботи з rsync

rsync – утиліта, для синхронізації директорій і файлів між серверами за допомогою SSH.

Приклад синхронізації з каталогу dir1 в dir2:

rsync -progtv dir1/ dir2/

Де:

  • -p — збереження прав;
  • -r — рекурсивно;
  • -o — зберегти власника (тільки під root);
  • -g — зберегти групу;
  • -t — зберегти дату зміни;
  • -v — більше налагоджувальної інформації;

Синхронізація локального каталогу з віддаленим:

rsync -ave 'ssh -p 2222' 1.2.3.4:/home/username/ /home/username/

В даному прикладі ми вказуємо ключ a для архівації даних під час передачі і ключ e для передачі по SSH із зазначенням потрібного порту, в даному випадку це 2222.

Якщо потрібно бачити прогрес передачі файлів – додамо опцію –progress :

rsync --progress -ave 'ssh -p 2222' 123.123.123.123:/home/username/ /home/username/

Варто зазначити, якщо синхронізація йде між серверами – на віддаленому сервері так само повинен бути встановлений rsync.

Для простої передачі файлів з локальної папки на віддалений сервер використовуємо команду:

rsync -avz ./local_dir root@123.123.123.123:/home/username/dir

Наведемо кілька прикладів використання утилітиrsync.
Синхронізація директорійdir1 в dir2:

rsync -vur /path/to/dir1 /path/to/dir2

Даним способом будуть синхронізовані директорії, але при цьому видаляються файли з dir2, які зникли з dir1.

rsync -vurtm --delete --progress /path/to/dir1 /path/to/dir2

Архівація директорії виконується наступною командою:

rsync -avzur --delete --progress /path/to/dir1 /path/to/dir2

Виконуємо копіювання через SSH з сервера my.server.com з папки /path/to/dir в поточну директорію.

rsync --progress -v -e ssh root@my.server.com:/path/to/dir/* ./

Виконуємо копіювання через SSH на сервер my.server.com в папку /path/to/dir/ з поточної директорії.

rsync --progress -v -e ssh ./ root@my.server.com:/path/to/dir/*

Синхронізація директорій з обмеженням швидкості, вказується через параметр bwlimit в Kb/sec:

rsync -p -r -d -u -l -o -g -t -X --numeric-ids --delete --progress --bwlimit=3000 /dir1 /dir2

Щоб докладніше дізнатися про rsync використовуйте команду:

rsync --help

Goodhoster.NET
Додати коментар