🐧 Обзор полезных примеров команд Rsync SSH для Linux

Мануал

Rsync также известен как remote sync– это инструмент командной строки, используемый для копирования и синхронизации файлов и каталогов как удаленно, так и локально в системах Linux/Unix.

Мы создали список с различными примерами команд Rsync, включающий примеры использования резервного копирования Rsync и другие советы, которые помогут вам извлечь максимум пользы из этого замечательного инструмента.

Зачем вообще использовать команды Rsync?

Думал, что вы спросите, поэтому вот почему:

  • Эффективно копирует и синхронизирует файлы на удаленную систему или с нее.
  • Поддерживает копирование ссылок, устройств, владельцев, групп и разрешений.
  • Он намного быстрее, чем Secure Copy (scp), поскольку использует протокол удаленного обновления, позволяющий передавать данные между двумя наборами файлов. В первый раз он копирует все содержимое файла или каталога из источника в пункт назначения, а в следующий раз копирует только измененные блоки и байты в пункт назначения.
  • Он потребляет меньше полосы пропускания, так как использует метод сжатия и декомпрессии при отправке и получении данных на обоих концах.

17 различных команд Rsync

Синтаксис Rsync

sync options source destination

Общие аргументы Rsync

  • -r: копирует данные рекурсивно.
  • -v: для вывода подробной информации.
  • -a: архивный режим, который позволяет копировать файлы рекурсивно. Более того, он также сохраняет символические ссылки, разрешения на файлы, пользователя и группу.
  • -z: сжатие данных.
  • -h: человекочитаемый формат, выводит числа в формате, читаемом человеком.

Установка Rsync на Linux

Установите его с помощью следующей команды

yum install rsync (На RedHat OS)
apt-get install rsync (На Debian подобных)

Копирование и синхронизация файлов или каталога (локально на удаленный сайт)

Это действие синхронизирует директории с локальной машины на удаленную, например, на локальном компьютере есть папка “rpmpkgs”, которая содержит некоторые пакеты RPM, и вы хотите, чтобы содержимое локальных директорий было отправлено на удаленный сервер, используйте следующую команду:

rsync -avz rpmpkgs/ root@192.168.1.100:/home/
sending incremental file list

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

Этот пример поможет синхронизировать удаленный каталог с локальным.

В примере, показанном ниже каталог /home/shaheer/rpmpkgs удаленного сервера перенесен в локальную систему в каталог /tmp/myrpms.

rsync -avzh root@192.168.1.100:/home/shaheer/rpmpkgs /tmp/myrpms
receiving incremental file list
created directory /tmp/myrpms

Этот пример позволит синхронизировать один файл на локальной машине из одного места в другое.

В примере файл с именем backup.tar нужно скопировать или синхронизировать в папку /tmp/backups/.

rsync -zvh yourfiles.tar /tmp/yourfiles/
created directory /tmp/yourfiles
yourfiles.tar

Следующая команда должна перенести или синхронизировать все файлы из одного каталога в другой каталог на той же машине.

В примере /root/rpmpkgs содержит некоторые файлы пакетов rpm, и вы хотите скопировать этот каталог в папку /tmp/backups/.

rsync -avzh /root/rpmpkgs /tmp/yourdekifiles/
sending incremental file list
rpmpkgs/

Отображение прогресса передачи данных Rsync

Мы используем опцию -progress для отображения прогресса при передаче данных с одной машины на другую.

Она также отображает файлы и время, оставшееся до завершения передачи.

rsync -avzhe ssh --progress /home/rpmpkgs

Rsync через SSH

С помощью этого протокола мы можем использовать SSH (Secure shell) для передачи данных, используя этот протокол при сетевом взаимодействии, мы можем быть уверены, что данные передаются в защищенном соединении с шифрованием, и никто не сможет прочитать данные при их передаче.

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

Резервное копирование файлов с облачного сервера на локально размещенный сервер через SSH

Чтобы указать протокол, необходимо указать опцию -e с именем протокола, который вы хотите использовать.

В примере мы будем использовать ssh с опцией -e и выполнять передачу данных.

rsync -avzhe ssh root@192.168.1.200:/root/install.log /tmp/

Копирование файла с локального сервера на удаленный сервер с помощью SSH

rsync -avzhe ssh backup.tar root@192.168.1.200:/dekibackup/

Rsync -delete

Если какой-либо файл или каталог не существует в источнике, но существует в месте назначения, то вы можете захотеть удалить этот существующий файл или каталог во время синхронизации.

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

Источник и цель синхронизированы, теперь создаем новые файлы test.txt на целевом сервере.

touch dekisoftryncpost.txt

rsync -avz --delete root@192.168.1.200:/var/lib/rpm/ 

Установка максимального размера файлов для первой передачи

Пользователи могут указать максимальный размер файлов для передачи или синхронизации.

Это можно сделать с помощью параметра -max-size.

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

rsync -avzhe ssh --max-size='400k' /var/lib/rpm/ root@192.168.1.200:/root/tmprpm
shaheer@192.168.1.200's password:
sending incremental file list
created directory /root/tmprpm
./

Выполним пробный запуск с помощью Sync

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

Это может испортить все в папке назначения, а отмена может оказаться довольно утомительным занятием.

Использование этой опции не вносит никаких изменений, а только выполняет пробный запуск команды и показывает вывод команды, если вывод показывает тот же результат, который вы хотите сделать, то вы можете удалить опцию -dry-run из команды и запустить боевую команду в терминале.

rsync --dry-run --remove-source-files -zvh mybackup.tar /tmp/mybackup/
mybackup.tar

Заключение

Remote sync – это отличный инструмент, который облегчил жизнь многим системным администраторам для создания резервных копий и перемещения данных между серверами.

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

см. также:

 

Добавить комментарий