Как передавать файлы с помощью Rsync через SSH в Linux

12 set 2022 3 min di lettura
Как передавать файлы с помощью Rsync через SSH в Linux
Indice dei contenuti

Введение

Когда дело доходит до передачи файлов между системами в сети, пользователи Linux и Unix имеют в своем распоряжении множество инструментов.

Наиболее популярными протоколами для передачи данных являются SSH и FTP. Хотя FTP очень популярен, вы всегда предпочитаете использовать SSH, так как это самый безопасный способ передачи файлов.

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

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

Предпосылки

Утилита rsync должна быть установлена как в целевой, так и в исходной системах. Если он не установлен, вы можете установить его с помощью менеджера пакетов вашего дистрибутива:

Убунту и Дебиан:

sudo apt install rsync

CentOS и Fedora:

sudo yum install rsync
  • SSH-доступ к удаленному компьютеру.
  • Пользователь, запускающий команду rsync, и удаленный пользователь SSH должны иметь соответствующие разрешения на чтение и запись файлов.

Используйте rsync для передачи файлов по SSH

С помощью rsync вы можете передавать файлы и каталоги по SSH на удаленные серверы и обратно.

Общий синтаксис для передачи файлов с помощью rsync выглядит следующим образом:

Local to Remote: rsync [OPTION]... -e ssh [SRC]... [USER@]HOST:DEST
 Remote to Local: rsync [OPTION]... -e ssh [USER@]HOST:SRC... [DEST]

SRC — исходный каталог, DEST — целевой каталог. USER — имя удаленного пользователя SSH, а HOST — удаленный хост SSH или IP-адрес.

Более новые версии rsync настроены на использование SSH в качестве удаленной оболочки по умолчанию, поэтому вы можете опустить параметр -e ssh.

Например, для переноса одного файла /opt/file.zip из локальной системы в каталог /var/www/ удаленной системы с IP 12.12.12.12 следует выполнить:

rsync -a /opt/file.zip [email protected]:/var/www/

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

Если вы не настроили SSH-доступ без пароля к удаленному компьютеру, вам будет предложено ввести пароль пользователя.

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

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

Чтобы передать данные с удаленного сервера на локальный компьютер, используйте удаленное расположение в качестве источника и локальное расположение в качестве назначения:

rsync -a [email protected]:/var/www/file.zip /opt/

Передача каталога с помощью rsync через SSH эквивалентна передаче файлов.

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

Например, чтобы перенести локальный каталог /opt/website/images/ в каталог /var/www/images/ на удаленном компьютере, введите:

rsync -a /home/noviello/images/[email protected]:/var/www/images/

Используйте параметр --delete, если вы хотите синхронизировать локальный и удаленный каталоги. Будьте осторожны при использовании этой опции, так как она удалит файлы в целевом каталоге, если они не существуют в исходном каталоге.

rsync -a --delete /home/noviello/images/[email protected]:/var/www/images/

Если SSH на удаленном узле прослушивает порт, отличный от 22 по умолчанию, укажите порт с помощью параметра -e. Например, если SSH прослушивает порт 3322, используйте:

rsync -a -e "ssh -p 3322" /home/noviello/images/[email protected]:/var/www/images/

При передаче больших объемов данных рекомендуется запускать команду rsync в сеансе экрана или использовать параметр -P, который указывает команде rsync отображать индикатор выполнения во время передачи и сохранять частично переданные файлы:

rsync -a -P /home/noviello/images/[email protected]:/var/www/images/

Вывод

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

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.