Поиск по сайту:

15 практических примеров команды Rsync в Linux

Команда Rsync позволяет нам передавать и синхронизировать файлы через SSH-соединение или локальный компьютер в разных каталогах и машинах. Если вам когда-нибудь понадобится сделать резервную копию каталога или синхронизировать данные, Rsync — один из лучших инструментов для резервного копирования системы. Использование Rsync намного эффективнее, чем просто копирование файлов, поскольку Rsync копирует только то, что отличается.

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

Как системный администратор Linux, вы должны знать некоторые основные и практические примеры команд Rsync в Linux, чтобы сделать вашу работу более удобной.

Функции Rsync в Linux


Здесь я добавляю несколько основных функций Rsync. Вы можете просмотреть приведенные ниже пункты для подробного обзора команды удаленной синхронизации, которая поможет вам позже понять примеры команд Rsync в Linux.

  • Команда Rsync может копировать файлы, каталоги и подкаталоги.
  • Поскольку Rsync использует алгоритм дельта-передачи, инструмент пропускает файлы, уже находящиеся в адресе назначения.
  • Rsync игнорирует файл, который точно такой же, как в клиентской и хост-системах.
  • Вы можете использовать Rsync как на SSH, так и на локальном компьютере.
  • Он может выполнять команды tar наряду с копированием файлов.
  • В большинстве случаев Rsync не требует привилегий sudo.
  • Вы можете использовать команды конвейера вместе с Rsync для более быстрой передачи файлов и снижения задержки.
  • Для копирования файлов через Интернет Rsync использует протокол TCP.
  • Rsync может уменьшить требуемую пропускную способность.
  • Вы не можете копировать файлы между двумя или более удаленными хостами через Rsync в Linux.

Синтаксис удаленной синхронизации в Linux


Здесь я добавляю несколько наиболее важных синтаксисов и краткий обзор Rsync. Изучение синтаксиса и флагов важно для лучшего понимания примеров команд Rsync в Linux.

Данные форматы команд предназначены для передачи файлов на локальном компьютере.

rsync [OPTION...] SRC... [DEST]

Rsync использует данный формат команды для передачи файлов через удаленную оболочку.

Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

Rsync использует данный формат команды для передачи файлов при доступе к хосту в качестве демона.

Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

Установить Rsync в Linux


Прежде чем мы перейдем к примерам команд Rsync в Linux, мы должны проверить, установлен ли у нас этот инструмент в системе или нет. По умолчанию Rsync предустановлен во всех основных дистрибутивах Linux. Следовательно, если вы обнаружите, что этот инструмент не установлен в вашей системе, вы можете легко установить инструмент Rsync на свой компьютер. Здесь я перечисляю команды для основных дистрибутивов Linux для установки Rsync.

Получить Rsync для Fedora и Red Hat Linux

sudo yum install rsync -y
sudo dnf install rsync -y

Установить Rsync в Debian/Ubuntu Linux

sudo apt install rsync -y

Вы можете получить инструмент Rsync из команд Snap в системах Arch Linux. Пожалуйста, выполните приведенные ниже команды соответственно, чтобы получить инструмент Rsync в Arch Linux. Сначала клонируйте репозиторий в Linux.

git clone https://aur.archlinux.org/snapd.git
cd snapd
makepkg -si

Теперь выполните команды управления системой, чтобы использовать сокеты. Затем запустите команду Snap, чтобы установить инструмент.

sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install rsync-leftyfb

Наконец, когда установка завершится, вы можете проверить страницу справки Rsync в оболочке терминала.

$ rsync --help

Rsync в Linux


Rsync — это сокращенная форма команды удаленной синхронизации. Этот инструмент Rsync доступен как для Mac, так и для Linux. В обоих случаях синтаксис и стили команд практически одинаковы. Когда мы говорим об удаленной синхронизации, это не всегда означает, что вам нужно будет синхронизировать или копировать файлы через SSH или Интернет.

Вы также можете выполнить Rsync на одном компьютере для синхронизации двух разных каталогов или подкаталогов. Очень эффективное использование Rsync наблюдается при обновлении репозиториев пакетов и альтернативных или зеркальных серверов.

В этом посте мы увидим несколько примеров наиболее используемых и мощных команд Rsync для Linux.

Примеры Rsync в Linux


Вот несколько основных примеров команды и формата Rsync в Linux. Ниже представлен формат команды, а второй предназначен для использования Rsync через SSH.

В Linux Rsync установит соединение через SSH-соединение при его запуске в среде хост-клиент. Когда удаленный пользователь или клиент принимает соединение, Rsync клиента автоматически активирует Rsync в хост-системе.

Общий формат команд Rsync

$ rsync [options] source [destination]

Формат команды Rsync для SSH-соединений

$ rsync local-file user@remote-host:remote-file

1. Команда удаленной синхронизации для копирования всех файлов в каталоге


Приведенный ниже пример команды Rsync в Linux скопирует все файлы из Documents в каталог /tmp/documents.

$ rsync -av Documents/* /tmp/documents

В этой команде мы использовали три флага; -a и -v, а также *. Вот объяснение того, что они делают в команде.

  • -a: Флаг -a выполняет команду в режиме архива/библиотеки.
  • -v: Флаг -v используется для подробного запуска Rsync.
  • – *: Символ * гарантирует, что все файлы выбраны и скопированы.

Теперь, если мы добавим несколько новых файлов в исходный каталог и снова запустим Rsync, он скопирует новые файлы и уведомит о словесном выводе оболочки.

$ rsync -av Documents/* /tmp/documents

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

$ rsync -aunv /home/ubuntupit/Documents/* /home/ubuntupit/Pictures/

После запуска тестовой проверки мы теперь можем запустить фактическую команду, удалив флаг -n в команде.

$ rsync -auv /home/ubuntupit/Documents/* /home/ubuntupit/Pictures/

2. Пример команды Rsync через SSH


До сих пор мы видели несколько примеров Rsync, демонстрирующих его выполнение на локальном компьютере. Здесь мы увидим, как запустить его на серверах. Все синтаксисы одинаковы; вам просто нужно указать адрес веб-сервера и имя пользователя.

$ rsync -av --ignore-existing Documents/* [email :~/all/

3. Примеры Rsync в Linux: пробный прогон Rsync


В программировании термин «пробный прогон» определяется как выполнение команды только для просмотра предварительного просмотра или ложное выполнение, чтобы проверить, что может произойти, если мы запустим команду. Здесь мы также можем применить команду пробного запуска для Rsync.

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

$ rsync -av --dry-run --update Documents/* [email :~/all/
$ rsync -av --update Documents/* [email :~/all/

4. Синхронизация файлов между локальным компьютером и удаленным сервером


Приведенная выше команда показывает, как отправлять файлы с локального компьютера на локальный компьютер или с сервера на другой хост. В приведенном ниже примере Rsync показано, как вы можете использовать этот инструмент для отправки файлов с локального компьютера на удаленный компьютер с Linux.

rsync [options] [files] [remote-username]@[ip-address]:/[destination]

5. Перенос файлов с удаленного сервера на локальный компьютер


В отличие от приведенной выше команды, приведенный ниже пример команды Rsync покажет, как вы можете отправлять файлы с удаленного сервера Linux на ваш локальный компьютер.

rsync -rv [email :/home/ubuntupit/Backup /home/ubuntupit/Desktop/Original

6. Отображение прогресса с помощью Rsync


Это очень важно для тех, кому необходимо передавать большие файлы с помощью инструмента Rsync. Например, приведенный ниже пример команды Rsync показывает, как вы можете отслеживать ход передачи в CLI в Linux.

sudo rsync -rv --progress Original/* /etc/ubuntupit

Вы можете запустить команду Rsync с флагом «-include», чтобы добавить определенный файл в процесс синхронизации.

sudo rsync -vr --include 'I*' Original/ /etc/Backup/

7. Используйте Rsync с параметром «–exclude», чтобы игнорировать файлы


С помощью Rsync вы также можете использовать команду exclude, чтобы исключить любой файл из вашей команды. Приведенный ниже пример команды Rsync в Linux показывает нам, как исключить файл, который мы не хотим синхронизировать. Здесь я исключил файл To_check_rsync_two (другая копия).txt для синхронизации с помощью этой команды Rsync в моей системе Linux.

$ sudo rsync -vr --exclude 'To_check_rsync_two (another copy).txt' /home/ubuntupit/Desktop/ /home/ubuntupit/Documents/

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

sudo rsync -vr --exclude '*' --include 'I*' Original/ /etc/Backup/

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

rsync -vr --delete /etc/Backup/ [email :/home/ubuntupit/Backup

8. Установите максимальный размер


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

rsync -vr --max-size='200k' /etc/Backup/ [email :/home/ubuntupit/Backup

9. Автоматическое удаление исходных файлов после переноса


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

$ rsync -vr --remove-source-files Original/* [email :/home/ubuntupit/backups/

10. Синхронизируйте все файлы с помощью удаленной синхронизации


До сих пор мы видели, что команда Rsync синхронизирует только те файлы, которые не были отредактированы или изменены. Но если вы хотите синхронизировать все ваши измененные и неизмененные файлы, вы можете использовать команду Rsync снизу.

rsync -vrW Original/* [email :/home/ubuntupit/Backup

11. Остановить синхронизацию измененных файлов в месте назначения


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

rsync -vu Original/* [email :/home/ubuntupit/Backup

12. Добавьте флаг -i, чтобы отслеживать разницу


Чтобы просмотреть разницу между исходным файлом и файлом после синхронизации, используйте флаг i с командой.

rsync -avzi Original/ Backup/

13. Используйте удаленную синхронизацию только для копирования структуры каталогов


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

rsync -av -f"+ */" -f"- *" /home/ubuntupit/Desktop/Original/ /home/ubuntupit/Documents/

14. Добавить отметку даты к имени каталога


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

Destination directory: $(date +\\%Y-\\%m-\\%d)
sudo rsync -rv /home/ubuntupit/Documents/* /etc/$(date +\\%Y-\\%m-\\%d)

15. Удаленное копирование нескольких файлов


До сих пор мы видели, как скопировать и передать один файл с удаленного сервера на локальный компьютер или наоборот с главного компьютера на локальный компьютер. Теперь мы увидим, как можно добавить несколько файлов и передать их с помощью одной команды Rsync. Чтобы добавить несколько файлов, мы должны указать все пути к файлам в команде.

rsync -vr /home/ubuntupit/Documents/To_check_rsync.txt /home/ubuntupit/Desktop/To_check_rsync_two.txt /home/ubuntupit/
rsync -vr /home/ubuntupit/Documents/To_check_rsync.txt /home/ubuntupit/Desktop/To_check_rsync_two.txt [email :/home/ubuntupit/Backup

Информация!


Поскольку команда Rsync написана на языке программирования C и работает как однопоточное приложение, этот инструмент может легко взаимодействовать с ядром и другими приложениями. Во всем посте мы рассмотрели инструмент Rsync и примеры команды Rsync в Linux для эффективной передачи файлов через машины и серверы.

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

Пожалуйста, поделитесь им со своими друзьями и сообществом Linux, если вы найдете этот пост полезным и информативным. Мы также рекомендуем вам написать свое мнение по поводу этого поста в разделе комментариев.

Статьи по данной тематике