Как использовать rsync для копирования папок и файлов Linux

rsync — это программа для передачи файлов для Linux, которая позволяет копировать каталоги и файлы с помощью простой команды. Команда включает в себя дополнительные параметры помимо традиционной функции копирования.

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

Синтаксис rsync

Правильное использование команды rsync требует правильного синтаксиса:

rsync [ОПЦИЯ] ... [SRC] ... [DEST]
rsync [ОПЦИЯ] ... [SRC] ... [ПОЛЬЗОВАТЕЛЬ @] ВЕДУЩИЙ: DEST
rsync [ОПЦИЯ] ... [SRC] ... [ПОЛЬЗОВАТЕЛЬ @] ХОСТ :: DEST
rsync [ОПЦИЯ] ... [SRC] ... rsync: // [ПОЛЬЗОВАТЕЛЬ @] ХОСТ [: ПОРТ] / DEST
rsync [ОПЦИЯ] ... [ПОЛЬЗОВАТЕЛЬ @] ВЕДУЩИЙ: SRC [DEST]
rsync [ОПЦИЯ] ... [ПОЛЬЗОВАТЕЛЬ @] ХОСТ :: SRC [DEST]
rsync [ОПЦИЯ] ... rsync: // [ПОЛЬЗОВАТЕЛЬ @] ХОСТ [: ПОРТ] / SRC [DEST]

Предоставленное выше пространство опций может быть заполнено рядом параметров. Полный список приведен в разделе СУЩНОСТЬ ОПЦИЙ документации rsync, но вот несколько распространенных примеров:

  • -v, —подробный: Увеличить многословие (предоставляет больше подробностей о том, что делает команда).
    • —информация = ФЛАГИ: Предоставляет подробные информационные сообщения.
    • —отлаживать = ФЛАГИ: Предоставляет подробные сообщения отладки.
    • —msgs2stderr: Специальная обработка вывода для отладки.
  • -Q, —тихий: Подавляет сообщения, не связанные с ошибками.
    • —нет-MOTD: Подавляет сообщение дня в режиме демона (MOTD).
  • , —контрольная сумма: Пропускает файлы на основе контрольной суммы, а не времени мод и размера.
  •  -р, —рекурсивный: Найдите в подкаталогах дополнительные файлы.
  • , —резервный: Делать резервные копии.
    • —резервное копирование DIR = DIR: Сделать резервные копии в соответствующей иерархии каталогов.
    • —Суффикс = СУФФИКС: Добавляет текст суффикса в конец файлов резервной копии.
  • -d, —каталоги: Переносить только каталоги, не просматривая их.

Примеры rsync

Ниже приведено несколько примеров использования rsync с некоторыми из этих опций.

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

Rsync /home/jon/Desktop/data/*.jpg / home / jon / Desktop / backupdata /

В этом примере выше все файлы JPG из папки / data / копируются в папку / backupdata / в папке пользователя Jon’s Desktop.

Копирование файлов по размеру

rsync --max-size =2k / home / jon / рабочий стол / данные / / home / jon / рабочий стол / backupdata /

Этот пример rsync немного сложнее, поскольку он настроен так, чтобы не копировать файлы, если их размер превышает 2048 КБ. То есть копировать только файлы меньше указанного размера.

Вы можете использовать k, m или g, чтобы указать килобайты, мегабайты и гигабайты в множителе 1024, или kb, mb или gb, чтобы использовать 1000.

rsync --min-size =30mb / home / jon / рабочий стол / данные / / home / jon / рабочий стол / backupdata /

То же самое можно сделать для —min-size, как вы видите выше. В этом примере rsync будет копировать только файлы размером 30 МБ или более.

rsync --min-size =30mb --прогресс / home / jon / рабочий стол / данные / / home / jon / рабочий стол / backupdata /

Когда вы используете rsync для копирования файлов очень большого размера, например, 30 МБ и более, особенно если их несколько, возможно, вы захотите увидеть ход выполнения функции копирования, чтобы знать, что команда обрабатывает. В этих случаях используйте опцию —progress, чтобы процесс работал до 100%.

Копировать целые папки

rsync - рекурсивный / home / jon / рабочий стол / данные / home / jon / рабочий стол / data2

Опция —recursive предоставляет простой способ скопировать всю папку в другое место, например, в папку / data2 / в приведенном выше примере.

Эта команда скопирует всю папку и все ее содержимое в новое место.

Исключить некоторые файлы

rsync -r --exclude = "*.дебютантка" / home / jon / рабочий стол / данные / home / jon / рабочий стол / backupdata

Вы также можете скопировать всю папку, но исключить файлы с определенным расширением, например, файлы DEB в этом примере выше.

В этом примере вся папка / data / копируется в / backupdata /, как в предыдущем примере, но все файлы DEB исключаются из копии.

Ссылка на основную публикацию