Rsync передать файлы через ssh
rsync — это быстрая и универсальная утилита командной строки для синхронизации файлов и каталогов между двумя местоположениями через удаленную оболочку или с / на удаленный демон Rsync. Он обеспечивает быструю инкрементную передачу файлов, передавая только различия между источником и местом назначения.
Rsync можно использовать для зеркального отображения данных, инкрементного резервного копирования, копирования файлов между системами, а также в качестве замены команд scp , sftp и cp .
В этой статье объясняется, как использовать rsync на практических примерах и подробных объяснениях наиболее распространенных параметров rsync .
Выводы
Мы показали вам, как использовать rsync поверх SSH для копирования и синхронизации файлов и каталогов.
Вы также можете прочитать, как исключить файлы или каталоги с помощью rsync .
Добавить в избранное
Главное меню » Операционная система Linux » Как передать файлы с помощью Rsync через SSH
К огда речь идет о передаче файлов между системами в сети, пользователи Linux и Unix имеют в своем распоряжении множество инструментов.
Наиболее популярными протоколами для передачи данных являются SSH и FTP. Хотя FTP очень популярен, всегда предпочитайте использовать SSH, так как это самый безопасный способ передачи ваших файлов.
Есть специализированные инструменты для передачи файлов через SSH, такие как scp и sftp но ни один из них не обладают всеми возможностями, которые предоставляет rsync. rsync может использоваться для зеркалирования данных, инкрементных резервных копий, копирования файлов между системами и так далее.
В этой статье мы объясним, как копировать файлы с помощью rsync через SSH.
Требования
- Утилита rsync должна быть установлена на обоих системах. Если она не установлена, вы можете установить ее, используя менеджер пакетов вашего дистрибутива: Ubuntu и Debian:
CentOS и Fedora:
Исключить файлы и каталоги
Есть два варианта исключения файлов и каталогов. Первый вариант — использовать аргумент --exclude и указать файлы и каталоги, которые вы хотите исключить, в командной строке.
При исключении файлов или каталогов необходимо использовать их относительные пути к исходному местоположению.
В следующем примере показано, как исключить node_modules и tmp :
Второй вариант — использовать параметр --exclude-from и указать файлы и каталоги, которые вы хотите исключить из файла.
Синтаксис команды Rsync
Прежде чем перейти к использованию rsync команды, давайте начнем с обзора основного синтаксиса.
В rsync полезности выражение принимает следующий вид:
- OPTION - Опции rsync .
- SRC - Исходный каталог.
- DEST - Каталог назначения.
- USER - Удаленное имя пользователя.
- HOST - Удаленное имя хоста от IP-адреса.
rsync предоставляет ряд опций, которые контролируют каждый аспект его поведения. Наиболее широко используемые варианты:
Базовое использование Rsync
Самый простой вариант использования rsync — это копирование одного файла из одного в другое локальное расположение. Вот пример:
Пользователь, выполняющий команду, должен иметь разрешения на чтение в исходном местоположении и разрешения на запись в месте назначения.
Если пропустить имя файла из места назначения, файл будет скопирован с текущим именем. Если вы хотите сохранить файл под другим именем, укажите новое имя в целевой части:
Настоящая мощь rsync проявляется в синхронизации каталогов. В приведенном ниже примере показано, как создать локальную резервную копию файлов веб-сайта:
Если целевой каталог не существует, rsync создаст его.
Стоит отметить, что rsync разному обрабатывает исходные каталоги с помощью завершающей косой черты ( / ). Если исходный каталог имеет косую черту в конце, команда скопирует только содержимое каталога в целевой каталог. Если косая черта в конце опущена, rsync копирует исходный каталог в целевой каталог.
Установите Rsync в Ubuntu и Debian
Вывод
Мы показали вам, как использовать rsync поверх SSH для копирования и синхронизации файлов и каталогов.
Основное использование Rsync
Чтобы скопировать один файл из одного в другое локальное местоположение, вы должны выполнить следующую команду:
Пользователь, выполняющий команду, должен иметь разрешения на чтение в месте назначения и права на запись в месте назначения.
Пропуск имени файла из места назначения копирует файл с текущим именем. Если вы хотите сохранить файл под другим именем, укажите новое имя в целевой части:
В приведенном ниже примере мы создаем локальную резервную копию файлов нашего сайта:
Если каталог назначения не существует rsync , создаст его.
Стоит отметить, что rsync в исходных каталогах по-разному трактуется косая черта / . Если вы добавите косую черту в исходный каталог, он скопирует только содержимое каталога в целевой каталог. Если косая черта не указана, rsync будет скопирован исходный каталог в целевой каталог.
Выводы
Мы показали вам, как использовать Rsync для копирования и синхронизации файлов и каталогов. Еще больше информации о Rsync можно найти на странице руководства пользователя Rsync .
Когда дело доходит до передачи файлов между системами в сети, пользователи Linux и Unix имеют в своем распоряжении множество инструментов.
Наиболее популярными протоколами для передачи данных являются SSH и FTP . Хотя FTP очень популярен, всегда предпочитайте использовать SSH, так как это самый безопасный способ передачи ваших файлов.
Есть специализированные инструменты для передачи файлов через SSH , такие как scp и , sftp но ни один из них не обладают всеми возможностями , которые rsync предоставляют. rsync может использоваться для зеркалирования данных, инкрементного резервного копирования, копирования файлов между системами и так далее.
Установка Rsync
rsync Утилита предварительно установлена на большинстве дистрибутивов и MacOS Linux. Вы можете проверить, установлен ли он в вашей системе, набрав:
Если вы не rsync установили в своей системе, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.
Использование rsync для передачи файлов по SSH
С помощью rsyncвы можете передавать файлы и каталоги по SSH с и на удаленные серверы.
Общий синтаксис для передачи файлов с помощью rsync следующий:
Где SRC – исходный каталог, DEST – целевой каталог USER- это удаленное имя пользователя SSH, а HOST также удаленный хост SSH или IP-адрес.
Более новые версии rsync настроены на использование SSH в качестве удаленной оболочки по умолчанию, поэтому вы можете опустить опцию -e ssh.
Например, для передачи одного файла /opt/file.zip из локальной системы в каталог /var/www/ на удаленной системе с IP-адресом 11.11.11.11, вы должны выполнить:
Опция -a означает архивный режим, который синхронизирует каталоги рекурсивно, передавать специальные и блочные устройства, сохранить символические ссылки, время модификации, группу, права собственности и право доступа.
Если вы не установили пароль “без пароля” для удаленного компьютера, вам будет предложено ввести пароль пользователя.
Если файл существует на удаленном сервере, он будет перезаписан. Если вы хотите сохранить файл под другим именем, укажите новое имя:
Для передачи данных с удаленного на локальный компьютер используйте удаленное местоположение в качестве источника и локальное местоположение в качестве места назначения:
Передача каталогов rsync по протоколу SSH аналогична передаче файлов.
Важно знать, что rsync в исходных каталогах по-разному трактуется косая черта /. Если исходный каталог имеет косую черту, rsync будет копировать только содержимое исходного каталога в целевой каталог. Если косая черта не указана, исходный каталог будет скопирован в целевой каталог.
Например, чтобы перенести локальный каталог /opt/website/images/ в каталог /var/www/images/ на удаленном компьютере, вы должны набрать:
Используйте опцию –delete, если вы хотите синхронизировать локальный и удаленный каталог. Будьте осторожны при использовании этой опции, поскольку она удалит файлы в целевом каталоге, если они не существуют в исходном каталоге.
Если SSH на удаленном хосте прослушивает порт, отличный от порта по умолчанию 22, укажите порт с помощью параметра -e. Например, если SSH прослушивает порт 3322, вы должны использовать:
При передаче больших объемов данных рекомендуется запускать команду rsync в сеансе экрана или использовать параметр -P, который указывает rsync показывать индикатор выполнения во время передачи и сохранять частично переданные файлы:
Установите Rsync в Ubuntu и Debian
Использование rsync для синхронизации данных с / на удаленную машину
При использовании rsync для удаленной передачи данных его необходимо установить как на исходном, так и на целевом компьютере. Новые версии rsync настроены на использование SSH в качестве удаленной оболочки по умолчанию.
В следующем примере мы переносим каталог с локального компьютера на удаленный:
Если вы не установили SSH-вход без пароля для удаленного компьютера, вам будет предложено ввести пароль пользователя.
Чтобы передать данные с удаленного компьютера на локальный, используйте удаленное местоположение в качестве источника:
Если SSH на удаленном хосте прослушивает порт, отличный от порта по умолчанию 22, укажите порт с помощью параметра -e :
При передаче больших объемов данных рекомендуется запускать команду rsync внутри сеанса экрана или использовать параметр -P :
Установка Rsync
Утилита rsync предустановлена в большинстве дистрибутивов Linux и macOS. Если в вашей системе не установлен rsync , вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.
Использование rsync для передачи файлов по SSH
С помощью rsync вы можете передавать файлы и каталоги по SSH с удаленных серверов и на них.
Общий синтаксис передачи файлов с помощью rsync следующий:
Где SRC — это исходный каталог, DEST — это целевой каталог. USER — это удаленное имя пользователя SSH, а HOST — это удаленный хост SSH или IP-адрес.
Новые версии rsync настроены на использование SSH в качестве удаленной оболочки по умолчанию, поэтому вы можете опустить параметр -e ssh .
Например, чтобы передать один файл /opt/file.zip из локальной системы в каталог /var/www/ удаленной системы с IP 12.12.12.12 вы должны запустить:
Параметр -a обозначает режим архива, который рекурсивно синхронизирует каталоги, передает специальные и блочные устройства, сохраняет символические ссылки, время модификации, группу, владение и разрешения.
Если вы не установили SSH-вход без пароля для удаленного компьютера, вам будет предложено ввести пароль пользователя.
Если файл существует на удаленном сервере, он будет перезаписан. Если вы хотите сохранить файл под другим именем, укажите новое имя:
Чтобы передать данные с удаленного компьютера на локальный, используйте удаленное местоположение в качестве источника и локальное местоположение в качестве пункта назначения:
Передача каталогов с помощью rsync через SSH аналогична передаче файлов.
Важно знать, что rsync разному обрабатывает исходные каталоги с завершающей косой чертой / . Если исходный каталог имеет косую черту в конце, rsync скопирует только содержимое исходного каталога в целевой каталог. Если опустить косую черту в конце, исходный каталог будет скопирован в целевой каталог.
Например, чтобы перенести локальный каталог /opt/website/images/ каталог /var/www/images/ на удаленном компьютере, вы должны ввести:
Используйте параметр --delete если вы хотите синхронизировать локальный и удаленный каталог. Будьте осторожны при использовании этого параметра, так как он удалит файлы в целевом каталоге, если они не существуют в исходном каталоге.
Если SSH на удаленном хосте прослушивает порт, отличный от порта по умолчанию 22 , укажите порт с помощью параметра -e . Например, если SSH прослушивает порт 3322 вы должны использовать:
При передаче больших объемов данных рекомендуется запускать команду rsync внутри сеанса экрана или использовать параметр -P который указывает rsync показывать индикатор выполнения во время передачи и сохранять частично переданные файлы:
How to Use Rsync for Local and Remote Data Transfer and Synchronization
В этом руководстве мы покажем вам, как использовать rsync на практических примерах и подробные объяснения наиболее распространенных вариантов rsync.
Rsync - это быстрая и универсальная утилита командной строки, которая синхронизирует файлы и папки между двумя местоположениями через удаленную оболочку или из / в удаленный демон Rsync. Он обеспечивает быструю пошаговую передачу файлов, передавая только различия между источником и местом назначения.
Rsync может использоваться для зеркального отображения данных, добавочное резервного копирования, копирования файлов между системами и в качестве замены для scp , sftp и cp команд для повседневного использования.
Требования
rsync Утилита должна быть установлена на обоих назначения и исходных систем. Если он не установлен, вы можете установить его, используя менеджер пакетов вашего дистрибутива:
Ubuntu и Debian:
CentOS и Fedora:
SSH доступ к удаленному компьютеру.
Пользователь, выполняющий rsync команду, и удаленный пользователь SSH должны иметь соответствующие разрешения для чтения и записи файлов.
Установите Rsync на CentOS и Fedora
Вывод
Из этого руководства вы узнали, как использовать Rsync для копирования и синхронизации файлов и каталогов. Еще много информации о Rsync можно найти на странице руководства пользователя Rsync .
Когда дело доходит до передачи файлов между системами в сети, пользователи Linux и Unix имеют в своем распоряжении множество инструментов.
Самые популярные протоколы передачи данных — SSH и FTP . Хотя FTP очень популярен, всегда лучше использовать SSH, так как это наиболее безопасный способ передачи файлов.
Существуют специализированные инструменты для передачи файлов по SSH, такие как scp и sftp но ни один из них не обладает всеми функциями, которые предоставляет rsync . rsync можно использовать для зеркального отображения данных, инкрементного резервного копирования, копирования файлов между системами и так далее.
В этом руководстве мы объясним, как копировать файлы с помощью rsync через SSH.
Синтаксис команды Rsync
Прежде чем перейти к использованию команды rsync , давайте начнем с обзора основного синтаксиса.
Выражения утилиты rsync имеют следующую форму:
- OPTION — параметры rsync .
- SRC — Исходный каталог.
- DEST — целевой каталог.
- USER — удаленное имя пользователя.
- HOST — удаленное имя хоста или IP-адрес.
rsync предоставляет ряд параметров, управляющих поведением команды. Наиболее широко используемые варианты:
Исключить файлы и каталоги
При исключении файлов или каталогов вам необходимо использовать их относительные пути к исходному местоположению.
Есть два варианта, чтобы исключить файлы и каталоги. Первый вариант - использовать --exclude аргумент и указать файлы и каталоги, которые вы хотите исключить, в командной строке.
В следующем примере мы исключая node_modules и tmp каталоги , которые расположены внутри src_directory :
Второй вариант - использовать --exclude-from аргумент и указать файлы и каталоги, которые вы хотите исключить из файла.
Установите Rsync на CentOS и Fedora
Как использовать Rsync для синхронизации данных с / на удаленный компьютер
При использовании rsync для удаленной передачи он должен быть установлен как на исходном, так и на конечном компьютере. Новые версии rsync настроены на использование SSH в качестве удаленной оболочки по умолчанию.
В следующем примере мы переносим каталог с локального на удаленный компьютер:
Если вы не установили пароль на удаленном компьютере, вам будет предложено ввести пароль пользователя.
Если вы хотите перенести данные с удаленного на локальный компьютер, вам нужно использовать удаленное местоположение в качестве источника:
Если SSH на удаленном хосте прослушивает порт, отличный от порта по умолчанию 22, вы можете указать порт, используя -e опцию:
При передаче больших объемов данных рекомендуется выполнить rsync команду внутри сеанса screen или использовать -P параметр:
Заключение
Мы показали вам, как использовать rsync поверх SSH для копирования и синхронизации файлов и каталогов.
Вы также можете прочитать, как исключить файлы или каталоги с помощью rsync.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Требования
rsync необходимо установить как в целевой, так и в исходной системах. Если он не установлен, вы можете установить его с помощью диспетчера пакетов вашего дистрибутива:
Ubuntu и Debian:
CentOS и Fedora:
SSH-доступ к удаленному компьютеру.
Пользователь, выполняющий команду rsync и удаленный пользователь SSH должны иметь соответствующие разрешения на чтение и запись файлов.
Использование rsync для передачи файлов по SSH
С помощью rsync вы можете передавать файлы и каталоги по SSH с и на удаленные серверы.
Общий синтаксис для передачи файлов с помощью rsync следующего:
Где SRC находится исходный каталог, DEST целевой каталог USER - это удаленное имя пользователя SSH, а HOST также удаленный хост SSH или IP-адрес.
Более новые версии rsync настроены на использование SSH в качестве удаленной оболочки по умолчанию, поэтому вы можете опустить эту -e ssh опцию.
Например, для передачи одного файла /opt/file.zip из локальной системы в /var/www/ каталог на удаленной системе с IP-адресом 12.12.12.12 вы должны выполнить:
-a Опция означает архивный режим , который синхронизирует каталоги рекурсивно, передача специального и блочные устройства, сохранить символические ссылки, время модификации, группы, права собственности и права доступа.
Если вы не установили пароль без пароля для удаленного компьютера, вам будет предложено ввести пароль пользователя.
Если файл существует на удаленном сервере, он будет перезаписан. Если вы хотите сохранить файл под другим именем, укажите новое имя:
Для передачи данных с удаленного на локальный компьютер используйте удаленное местоположение в качестве источника и локальное местоположение в качестве места назначения:
Передача каталогов rsync по протоколу SSH аналогична передаче файлов.
Важно знать, что rsync в исходных каталогах по-разному трактуется косая черта / . Если исходный каталог имеет косую черту, rsync будет копироваться только содержимое исходного каталога в целевой каталог. Если косая черта не указана, исходный каталог будет скопирован в целевой каталог.
Например, чтобы перенести локальный /opt/website/images/ каталог в /var/www/images/ каталог на удаленной машине, вы должны набрать:
Используйте эту --delete опцию, если вы хотите синхронизировать локальный и удаленный каталог. Будьте осторожны при использовании этой опции, поскольку она удалит файлы в целевом каталоге, если они не существуют в исходном каталоге.
Если SSH на удаленном хосте прослушивает порт, отличный от порта по умолчанию 22 , укажите порт с помощью -e параметра. Например, если SSH прослушивает порт, 3322 вы должны использовать:
При передаче больших объемов данных рекомендуется запускать rsync команду в сеансе экрана или использовать -P параметр, который указывает rsync показывать индикатор выполнения во время передачи и сохранять частично переданные файлы:
Читайте также: