Команди rsync, які часто використовуються, але які запам'ятовувати не хочеться.
За великих обсягів даних одразу використовуйте screen, аби не було прикро на випадок термінових відключень техніки/мережі.
Синхронізація директорії на віддаленому сервері з локальним через ssh
rsync -avzhe ssh root@192.168.2.101:/home/beta/Downloads /tmp
Зкопіює папку /home/beta/Downloads
з віддаленого сервера за адресою 192.168.2.101 й покладе її локально до /tmp
Таким же чином можна й завантажити файли з локальної машини до віддаленого сервера.
rsync -avzhe ssh mailer.tar.gz root@192.168.2.101:/home/beta/Downloads/
Аби переглянути
прогрес ходу роботи можна додати опцію
--progressЩоб виключити якісь файли, папки можна додати опцію
--exclude '*.log'
Або щоб синхронізувати тільки окремі файли
--include '*.cfg' --exclude '*.log'
Якщо вказана опція
--delete видаляться файли у місці призначення (
на віддаленому сервері), якщо таких не виявиться на нашому диску.
Для видалення файлів, які були успішно завантажені, можна використовувати опцію
--remove-source-files. Це видалить файли з локальної машини.
Копіювати файли з лімітом на
розмір можна додавши:
--max-size='1024k'
Така опція не дасть копіювати файли обсягом більше 1 мегабайта
Для
тестового використання робиться
--dry-run. Це відобразить які зміни будуть виконані, але не застосує їх.
Для
обмеження швидкості, аби не з'їсти весь канал або диск, можна встановити опцію
--bwlimit=2048. Цифра вказується в кілобайтах за секунду (kbps).
screen можна запровадити так:
screen -AmdSL rs rsync -avzhe ssh root@192.168.2.101:/local/files/path /remote/files/path
В поточній директорії з'явиться лог файл, який можна дивитись чимось на кшталт
tail -f screenlog.0
Для завантаження великих файлів краще користуватися
--partial --progress --inplace -vzhe ssh
Для атоматизації вводу пароля можна використати:
sshpass -p "PaSsWoRd" rsync -avzhe "ssh -p23" user@host:remote_dir /local/dir
Ви маєте увійти під своїм обліковим записом