Как пользоваться Rsync на VPS [Удаленно]
Опубликовано on 14 November 2014 14:02

Как использовать Rsync для синхронизации с удаленной системой

Синхронизация с удаленной системой является тривиальной задачей, если у вас есть SSH доступ к удаленному компьютеру и Rsync, установленный с обеих сторон. Если Вам нужно подключиться к серверу по SSH:

Windows: Подключение по SSH


После того, как Вы проверили доступ SSH между двумя машинами, можно синхронизировать папку dir1 с удаленным компьютером (обратите внимание, что мы хотим передать определённый каталог, в данном случае мы указваем слэш «/»):

 

rsync -a ~/dir1 username@remote_host:destination_directory


Это называется операцией "
push", потому что это толкает каталог из локальной системы на удаленную систему.

Противоположная операция "тянуть"(pull). Он используется для синхронизации удаленного каталога в локальную систему. Если dir1 находится на удаленной системе, а не на нашей локальной, синтаксис будет выглядеть так:

rsync -a username@remote_host:/home/username/dir1 place_to_sync_on_local_machine



Как и  в случае использования клманды "СР" и аналогичных инструментов, источник указывается первым аргументом, а точка назначения - вторым.

 


Полезные опции для Rsync

Rsync предоставляет множество возможностей для изменения поведения утилиты.

При передаче файлов, которые еще не были сжаты, например, текстовые файлы, Вы можете их сжать, тем самым уменьшив объем передачи данных по сети. Для этого требуется добавить параметр -z:

rsync -az source destination



Флаг -Р очень полезный. Она сочетает в себе флаги --progress и --partial. Первый из них отображаем прогресс-бар, а второй позволяет проводить докачку:

rsync -azP source destination

 

Поэтапная отправка списка файлов


sending incremental file list ./ file1 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=99/101) file10 0 100% 0.00kB/s 0:00:00 (xfer#2, to-check=98/101) file100 0 100% 0.00kB/s 0:00:00 (xfer#3, to-check=97/101) file11 0 100% 0.00kB/s 0:00:00 (xfer#4, to-check=96/101) . . .



Если мы снова запустим команду, мы получим более короткий вывод, потому что никаких изменений не вносилось.

Это иллюстрирует способность Rsync на проверку времени модификации, чтобы определить, были ли внесены изменения.

rsync -azP source destination

sending incremental file list

sent 818 bytes received 12 bytes 1660.00 bytes/sec
total size is 0 speedup is 0.00
 

Для примера, можно изменить время модификации какого-либо файла и увидеть, то Rsync при повторном запуске скопирует только изменившиеся файлы:



touch dir1/file{1..10}
rsync -azP source destination



sending incremental file list
file1
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=99/101)
file10
           0 100%    0.00kB/s    0:00:00 (xfer#2, to-check=98/101)
file2
           0 100%    0.00kB/s    0:00:00 (xfer#3, to-check=87/101)
file3
           0 100%    0.00kB/s    0:00:00 (xfer#4, to-check=76/101)
. . .

 


Чтобы корректно синхронизировать две директории, необходимо удалить те файлы из каталога назначения, которые были удалены в каталоге источнике. По умолчанию, Rsync ничего сам не удаляет.

 

 Вывод

Rsync может упростить передачу файлов через сетевые подключения и служить надёжным инструментом для локальной синхронизации каталогов. Гибкость Rsync делает его хорошим инструментом для различных файловых операций .

Использование Rsync позволяет настраивать сложные операции резервного копирования и получать детальный контроль над тем, что передается и как.

 

(3 голос(а))
Эта статья помогла
Эта статья не помогла

Коментарии (0)