Копирование данных с помощью rsync + ssh

Очень часто бывает необходимо скопировать один или несколько файлов с одного сервера на другой. Использовать *FTP-клиент* для этого не всегда возможно(т.к. необходимо чтобы на машине получателе был запущен и настроен *FTP-сервер*). Можно скопировать файлы через *SSH* с помощью *scp*, благо, *SSH-сервер* практически на любой *UNIX-системе* устанавливается и запускается штатно, но возможности данной утилиты ограничены. Он не умеет делать докачку файлов, пропускать уже имеющиеся. Поэтому, для копирования файлов между серверами лучше всего использовать утилиту *rsync*. Данная утилита умеет копировать файлы через *ssh* протокол, умеет отслеживать как изменился файл при копировании между источником и приёмником и копирует только изменившиеся данные. Кроме этого, rsync умеет сжимать данные при копировании, что позволяет экономить трафик. *Rsync* очень удобная утилита для синхронизации файлов между несколькими серверами. Утилита *rsync* должны находиться на обоих машинах и желательно, чтобы была доступна из путей «по-умолчанию»(в противном случае, можно использовать опцию, например, **–rsync-path=/usr/local/bin/rsync** чтобы указать, где *rsync* находится на удалённой машине). Копирование данных выполняется следующей командой: rsync –progress -avz -e ssh user@host:/path/on/server/ /directory/path/ или rsync –progress -avz /directory/path/ -e ssh user@host:/path/on/server/ при этом, ключ -a эквивалентен набору следующих ключей -rlptgoD -r – означает рекурсивное копирование директорий -l – копировать симлинки как симлинки -p – сохранять права доступа к файлам() -t – сохранять время (модификации) если поддерживается файловой системой -g – сохранять группу владельца файла -o – сохранять владельца файла -D – (эквивалентна опциям –devices –specials), то есть – «–devices» указывает rsync’у копировать символьные и блочные файлы на другой сервер и попробовать их пересоздать там. Эта опция игнорируется, если rsync запущен не от пользователя root. «–specials» – эта опция указывает rsync’у копировать специальные файлы, такие как именованные каналы и сокеты. -v – эта опция указывает команде rsync выдавать более подробную служебную информацию на старте. -z – эта опция указывает использовать сжатие при передаче данных. –progress - показывать ход выполнения копирования данных -e ssh – указывает rsync использовать протокол ssh. Чтобы проверить работу *rsync*, может оказаться полезной опция *-n* – она заставляет *rsync* показать какие файлы и каталоги будут скопированы, но на самом деле никакого копирования не производит. Необходимо обратить внимание на слеш в конце исходного пути, т.к. если он указан, то будет производиться копирование содержимого каталога. Если он отсутсвует, то в этом случае, будет скопирован сам каталог вместе со всем своим содержимым.

Комментариев нет:

Отправить комментарий