amazingly useful and powerful tool for copying files - rsync
Оглавление:
Когда речь идет о передаче файлов между системами в сети, пользователи 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
вы можете передавать файлы и каталоги по SSH с и на удаленные серверы.
Общий синтаксис для передачи файлов с
rsync
выглядит следующим образом:
Local to Remote: rsync… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…
Где
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
означает режим архива, который будет рекурсивно синхронизировать каталоги, передавать специальные и блочные устройства, сохранять символические ссылки, время модификации, группу, владельца и права доступа.
Если файл существует на удаленном сервере, он будет перезаписан. Если вы хотите сохранить файл под другим именем, укажите новое имя:
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/linuxize/images/ [email protected]:/var/www/images/
Используйте
--delete
опцию, если вы хотите синхронизировать локальный и удаленный каталог. Будьте осторожны при использовании этой опции, поскольку она удалит файлы в целевом каталоге, если они не существуют в исходном каталоге.
rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/
Если SSH на удаленном хосте прослушивает порт, отличный от порта по умолчанию
22
, укажите порт с помощью параметра
-e
. Например, если SSH прослушивает порт
3322
вы должны использовать:
rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/
При передаче больших объемов данных рекомендуется запускать команду
rsync
в сеансе экрана или использовать опцию
-P
которая сообщает
rsync
нужно отображать индикатор выполнения во время передачи и сохранять частично переданные файлы:
rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/
Вывод
Мы показали вам, как использовать
rsync
через SSH для копирования и синхронизации файлов и каталогов.
Вы также можете прочитать, как исключить файлы или каталоги с помощью
rsync
.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
rsync терминалОбзор. Разделите файлы AVI на отдельные файлы с помощью AVI Splitter
Когда вы смотрите медиафайл в формате AVI, вы можете скопировать раздел в виде отдельного файла AVI для более удобного просмотра позже. AVI Splitter делает этот быстрый и безболезненный процесс несколькими щелчками мыши.
Как передать право собственности на документ в Google Drive
Если у вас есть несколько аккаунтов, связанных с Google, то использование Google Диска может быть довольно трудным делом. Вот как вы можете передать право собственности, чтобы упростить процесс.
Как исключить файлы и каталоги с помощью rsync
С Rsync вы можете зеркалировать данные, создавать инкрементные резервные копии и копировать файлы между системами. При копировании данных вы можете исключить один или несколько файлов или каталогов на основе их имени или местоположения. В этом уроке мы покажем вам, как исключить файлы и каталоги с помощью rsync.