Поиск по сайту:

Как использовать команду rsync для копирования данных локально и через SSH


Копирование файлов из одного места в другое — довольно простая задача, и ее легко выполнить с помощью команды cp. Однако иногда нужно сделать немного больше. Именно здесь используется команда rsync, особенно когда вы передаете файлы большего размера. Rsync (Remote Sync) — это инструмент командной строки на базе Linux, который можно использовать для синхронизации и копирования файлов между локальными и удаленными серверами. Он позволяет синхронизировать файлы между двумя каталогами на одном компьютере, между каталогами на двух разных компьютерах в одной сети, между двумя каталогами в удаленной системе.

Основное преимущество rsync заключается в том, что вместо слепого копирования всего содержимого он анализирует и передает только различия между источником и местом назначения, что позволяет экономить системные ресурсы и пропускную способность. Некоторые другие преимущества rsync заключаются в следующем:

  • Сжимает файлы перед передачей
  • Можно просматривать индикатор выполнения во время передачи данных
  • Процесс копирования можно приостановить и возобновить позже.
  • Разрешает передачу через SSH-соединение.

В этой статье мы объясним, как использовать rsync для копирования данных в Linux. Мы будем использовать Debian 10 для описания процедуры, упомянутой в этой статье.

Rsync установлен в большинстве операционных систем Linux по умолчанию. Однако, если он не установлен, вы можете установить его, выполнив следующие действия:

Запустите приложение «Терминал» в своей системе, перейдя на вкладку Действия в верхнем левом углу рабочего стола Debian. Затем в строке поиска введите терминал. Когда появится значок Терминала, щелкните его, чтобы запустить.

Теперь выполните следующую команду в терминале, чтобы установить утилиту rsync:

apt install rsync

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

Основной синтаксис rsync:

rsync [option] [source] [destination]

Некоторые общие параметры, используемые с командами rsync:

  1. -v: многословный
  2. -a: режим архивирования, позволяет рекурсивно копировать файлы и сохранять символические ссылки, права доступа к файлам, права собственности пользователей и групп, а также временные метки.
  3. -z: сжимает данные.
  4. -h : удобочитаемый, выводит числа в удобочитаемом формате.
  5. --max-size=SIZE, передать файлы с указанным минимальным РАЗМЕРОМ
  6. --min-size=РАЗМЕР, передать файлы с указанным максимальным РАЗМЕРОМ

Теперь мы объясним несколько примеров использования rsync с этими параметрами.

Копирование файлов и каталогов на локальный сервер

Копирование файлов локально

Вы можете скопировать один или несколько файлов из исходного каталога в целевой каталог на одном компьютере. Примером может служить копирование всех файлов .jpg из каталога ~/Downloads в каталог ~/Documents с помощью следующей команды:

rsync -zvh /home/tin/Downloads/*.jpg /home/tin/Documents

После выполнения указанной выше команды все файлы .jpg в исходном каталоге /home/tin/Downloads будут скопированы в целевой каталог /home/tin/Documents . .

В приведенном выше примере мы использовали такие параметры, как -z для сжатия, -v для подробного вывода и -h для удобочитаемого вывода. .

Копировать каталоги локально

Подобно файлам, вы также можете скопировать всю папку и файлы, содержащиеся в каталоге, с помощью команды rsync. Примером может быть копирование всех файлов из каталога ~/Downloads в каталог ~/Documents с помощью следующей команды:

rsync -zavh /home/tin/Downloads/ /home/tin/Documents

Копирование файлов на удаленный сервер

Вы можете скопировать один или несколько файлов из исходного каталога в целевой каталог на удаленном компьютере. Например, чтобы скопировать файлы с локального на удаленный компьютер, используйте следующий синтаксис команды:

rsync [options] [local path] [user]@[remote server]:[remote path]

Копирование файлов на основе максимального размера

Вы также можете указать максимальный размер файла, который можно скопировать из источника в место назначения с помощью rsync. Для этого используйте следующий синтаксис команды:

rsync --max-size=”” [source] [destination]

Примером может служить копирование файлов с максимальным размером 4000 КБ из исходного каталога ~/Downloads в целевой каталог ~/Documents. В этом случае файлы размером более 4000 КБ не будут скопированы в место назначения.

rsync --max-size=4000k /home/tin/Downloads/*.iso /home/tin/Documents/

Копирование файлов на основе минимального размера

Аналогичным образом вы также можете указать минимальный размер, который можно скопировать из источника в место назначения с помощью rsync. Для этого используйте следующий синтаксис команды:

rsync --min-size=”” [source] [destination]

Примером этого может быть копирование файлов с максимальным размером 2 МБ из исходного каталога ~/Downloads в целевой каталог ~/Documents. Файлы размером менее 2 МБ не будут скопированы с помощью rsync.

rsync --min-size=2M /home/tin/Downloads/*.iso /home/tin/Documents/

Просмотр прогресса

Вы также можете просмотреть прогресс при копировании файлов с помощью rsync. Добавьте флаг --progress после команды rsync, как показано ниже:

rsync --progress [source] [destination]

Примером может служить просмотр хода копирования файла из исходного каталога ~/Downloads в целевой каталог ~/Documents:

rsync --progress /home/tin/Downloads/VTS_03_1.VOB /home/tin/Documents

Исключить файлы

Вы также можете исключить определенные файлы при копировании файлов из источника в место назначения с помощью rsync. Примером может служить исключение всех файлов .pdf при копировании файлов из исходного каталога ~/Downloads в целевой каталог ~/Documents.

rsync -zavh --exclude="*.pdf" /home/tin/Downloads/ /home/tin/Documents

При вводе следующей команды все файлы будут скопированы из источника в место назначения, за исключением файлов .pdf.

Вот и все! Мы объяснили основные принципы использования утилиты rsync для копирования файлов между разными каталогами локально и удаленно. Мы также объяснили несколько распространенных и полезных опций rync. Помимо этих, существует множество других опций, которые вы можете использовать для управления каждым аспектом процесса передачи. Чтобы использовать эти параметры, см. справочные страницы rsync.

Статьи по данной тематике: