Поиск по сайту:
Свободен тот, кто может не лгать (А. Камю).

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

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

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

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

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

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

 

  • Утилита rsync должна быть установлена на обоих системах. Если она не установлена, вы можете установить ее, используя менеджер пакетов вашего дистрибутива: Ubuntu и Debian:
    sudo apt install rsync

     

    CentOS и Fedora:

    sudo yum install 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-адресом 11.11.11.11, вы должны выполнить:

rsync -a /opt/file.zip user@11.11.11.11:/var/www/

 

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

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

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

rsync -a /opt/file.zip user@11.11.11.11:/var/www/file2.zip

 

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

rsync -a user@11.11.11.11:/var/www/file.zip /opt/

 

Передача каталогов rsync по протоколу SSH аналогична передаче файлов.

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

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

rsync -a /home/andreyex/images/ user@11.11.11.11:/var/www/images/

 

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

rsync -a --delete /home/andreyex/images/ user@11.11.11.11:/var/www/images/

 

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

rsync -a -e "ssh -p 3322" /home/andreyex/images/ user@11.11.11.11:/var/www/images/

 

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

rsync -a -P /home/andreyex/images/ user@11.11.11.11:/var/www/images/

 

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

Вы также можете прочитать, как исключить файлы или каталоги с помощью rsync.

Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Файлы в рабочем каталоге Git могут быть отслежены или не…

Спасибо!

Теперь редакторы в курсе.