Утилита rsync - синхронизация файлов с сервером

Создано: 04.09.25

Консольная программа rsync, подобно scp, позволяет копировать файлы и каталоги между удаленным сервером и локальным компьютером. Однако, во-первых, позволяет делать это и между двумя локальными папками, во вторых - происходит не совсем копирование, а синхронизация. Последнее означает, что rsync выполняет копирование файла из источника в место назначения, если в источнике файл более новый или его нет в месте назначения.

Другими словами, в отличие от scp утилита rsync не копирует все подряд, а только измененные файлы. Так если сайт правится на локальном компьютере, то, выполнив команду rsync, можно загрузить изменения на веб-сервер. Если же файлы сайта правятся там, то подтянуть изменения на свой компьютер также можно с помощью rsync.

Команда выполняется на локальном компьютере, а направление синхронизации задается порядком аргументов. Сначала указывается источник, потом - приемник (место назначения). Также скорее всего потребуются ключи.

$ rsync -avz test/ young@younglinux.info:/home/young/testy/
sending incremental file list
./
folder/
folder/text.txt

sent 1.058 bytes  received 55 bytes  742,00 bytes/sec
total size is 26.545  speedup is 23,85

В примере мы синхронизируем содержимое каталога test с удаленным testy. При этом находимся в родительском для test каталоге. Если бы текущей директорией был бы сам test, то источник надо обозначить точкой. Если написать ../test, то в каталоге testy окажется вложенный test.

Подтягивание изменений будет выглядеть так (здесь мы находимся в каталоге test):

$ rsync -avz young@younglinux.info:/home/young/testy/ .
receiving incremental file list
./
server_file
server_folder/
server_folder/article.tst

sent 83 bytes  received 1.187 bytes  508,00 bytes/sec
total size is 26.576  speedup is 20,93

Значение основных ключей: