Утилита Rsync

В этой статье разбирается утилита rsync, которая может применяться для синхронизации файлов между локальным и удалённым компьютером.

Об утилите

Утилита rsync — это утилита для быстрого копирования файлов с локального компьютера на удалённый или наоборот.

Установить её можете из стандартных репозиториев:

# apt install rsync

Получить справку по этой утилите можно  здесь , или выполнив команду:

# man rsync

В качестве транспорта может использовать протокол SSH. И, настроив подключение с одного сервера на другой по ssh-ключам, вы можете использовать rsync в скриптах которые выполняются по расписанию.

Синтаксис команды:

# rsync [option] /src/... /dst/...

А при использовании ssh синтаксис будет следующим:

# rsync [option] -e ssh /src/... <user>@<host>:/dst/...

Опции и примеры использования

Рассмотрим некоторые опции которые имеет утилита rsync:

  • --timeout <N> — оборвать выполнение команды, если I/O не будет отвечать указанное количество секунд;
  • --bwlimit <RATE> — установить лимит скорости передачи в килобитах;
  • --remove-source-files — удалить файлы на источнике после их передачи;
  • -W — отключить алгоритм delta-transfer, это рекомендуют применять когда скорость сети между компьютерами выше, чем пропускная способность диска;
  • -q — уменьшить выводимую информацию;
  • -v — сделать выводимую информацию более подробной;
  • --progress — показать прогресс передачи файлов;
  • -z — использовать сжатие;
  • -h — выводить числа в удобном для человека формате;
  • -e — указать с помощью чего подключаться к удалённому хосту, например -e 'ssh -p 2234'.

Пример использования:

# rsync --timeout 5 --bwlimit 25000 \
  --remove-source-files -W -q -e ssh \
  /dump1c/ut.dump.gz \
  root@192.168.0.12:/storage/pg_store
  • Я копирую дамп базы /dump1c/ut.dump.gz на удалённый сервер  root@192.168.0.12 :/storage/pg_store.
  • Для передачи использую ssh.
  • Указал timeout равным 5 секундам, и если удалённый сервер не ответит, то передача оборвётся.
  • Ещё указал лимит скорости в 25000, это примерно 25 Mbit/s.

Утилита позволяет копировать файлы или каталоги локально, например:

# rsync -zvh --progress file /tmp/backups/
# rsync -zvh --progress /home/alex/documents /tmp/backups/

Кстати, вместо SSH вы можете использовать демон rsync. Утилита rsync довольно известная, и многими используемая, особенно в скриптах. Поэтому о ней необходимо помнить.


Если понравилась статья, подпишись на мой канал в  VK  или  Telegram .