Параметры rsync: Использование rsync в примерах [АйТи бубен]
Содержание
Использование rsync в примерах [АйТи бубен]
rsync (англ. Remote Synchronization) — программа для UNIX- подобных систем, которая выполняет синхронизацию файлов и каталогов в двух местах с минимизированием трафика, используя кодировку данных при необходимости. Важным отличием rsync от многих других программ/протоколов является то, что зеркалирование осуществляется одним потоком в каждом направлении (а не по одному или несколько потоков на каждый файл). rsync может копировать или отображать содержимое каталога и копировать файлы, опционально используя сжатие и рекурсию.
Демон rsyncd, реализующий протокол rsync, по умолчанию использует Порты TCP порт 873.
Утилита rsync использует алгоритм, разработанный австралийским программистом Эндрю Триджеллом, для эффективной передачи структур (например, файлов) по коммуникационным соединениям в том случае, когда принимающий компьютер уже имеет отличающуюся версию этой структуры. Принимающий компьютер разделяет свою копию файла на неперекрывающиеся куски фиксированного размера S, и вычисляет контрольную сумму для каждого куска: MD4-хеш и более слабый rolling checksum, и отправляет их серверу, с которым синхронизируется. Сервер, с которым синхронизируются, вычисляет контрольные суммы для каждого кусочка размера S в своей версии файла, в том числе перекрывающиеся куски. Это может быть эффективно подсчитано ввиду особого свойства rolling checksum: если rolling checksum байт от n до n+S-1 равняется R, то rolling checksum байт от n+1 до n+S может быть посчитана исходя из R, байта n и байта n+S без необходимости учитывать байты, лежащие внутри этого интервала. Таким образом, если уже подсчитана rolling checksum байт 1-25, то для подсчета rolling checksum байт 2-26 используется предыдущая контрольная сумма и байты 1 и 26.
Если исходная система работает в ограниченном chroot-окружении или если пользователь или группа не существуют на приемной стороне, то используются исходные числовые id.
-delete отличается от –delete-after тем, что удаление производится вначале, а не на завершающей стадии процесса бэкапа. –delete-after работает быстрее, так как не требует лишней стадии обхода списка файлов, но требует использования опции –force для обработки таких ситуаций как удаление файла и появление директории с тем же именем;
Шаблоны исключения и включения, будучи заданными, позволяют гибко выделять, какие файлы должны передаваться, а какие должны быть пропущены.
rsync строит упорядоченный список на основе параметров –include/–exclude, указанных в командной строке. Rsync проверяет каждое имя файла или каталога относительно соответствия каждому шаблону включения/исключения. В действие вступает первое же совпадение. Если совпавший шаблон исключающий, то соответствующий файл пропускается. Если шаблон включающий, то не пропускается. При отсутствии подходящих шаблонов к имени файла он также не пропускается.
Имена файлов проверяемых по таким шаблонам задаются относительно каталога назначения, «верхнего каталога», так что шаблоны необязательно должны включать элементы исходного или конечного каталогов. Единственный случай, когда шаблоны будут проверяться относительно абсолютных путей к файлам или каталогам, — это случай, когда исходным путем является корневой каталог файловой системы.
Заметьте, что при использовании параметра -r (он подразумевается при -a) каждая отдельная часть каждого пути просматривается сверху вглубь, так что шаблоны включения/исключения применяются рекурсивно к каждой такой части.
Также обратите внимание, что параметры –include и –exclude допускают только по одному шаблону каждый. Для добавления множества шаблонов используйте параметры –include-from и –exclude-from или множество параметров –include и –exclude соответственно.
Шаблоны могут быть заданы в нескольких формах. Правила для них таковы:
Правила +/- наиболее полезны в списках, читаемых из файла, позволяя Вам иметь один общий список, который содержит как исключающие, так и включающие шаблоны.
Если Вы завершите исключающий список указанием –exclude ‘*’, то обратите внимание, что из-за рекурсивного характера алгоритм остановится на родительских каталогах и не будет пробовать файлы внутри них за исключением тех случаев, когда Вы явно укажете включать родительские каталоги файлов, которые Вы хотите включить. Для включения всех каталогов используйте –include ‘*/’ до –exclude ‘*’.
Несколько примеров включения/исключения:
--exclude "*.o" исключить все имена файлов, соответствующие *.o --exclude "/foo" исключить файл с именем foo в верхнем каталоге --exclude "foo/" исключить любой каталог с именем foo --exclude "/foo/*/bar" исключить любой файл с именем bar в двух уровнях вглубь по иерархии от каталога "foo" в вершине дерева --exclude "/foo/**/bar" исключить любой файл с именем bar в двух и более уровнях вглубь по иерархии от верхнего каталога "foo" --include "*/" --include "*.c" --exclude "*" включить только каталоги и файлы с Си-исходниками --include "foo/" --include "foo/bar.c" --exclude "*" включит только foo/bar.c (каталог foo/ нужно включать явно, иначе он будет пропущен из-за "*")
0 Успешно 1 Синтаксическая ошибка или ошибка использования 2 Несовместимость протоколов 3 Ошибки выбора входных/выходных файлов и каталогов 4 Запрошенное действие не поддерживается: была сделана попытка работы с 64-битными файлами на платформе, которая их не поддерживает; или указан параметр, который поддерживается только клиентом и не поддерживается сервером. 5 Ошибка при попытке начать работать по протоколу клиент-сервер 10 Ошибка сокета ввода/вывода 11 Ошибка ввода/вывода файла 12 Ошибка в потоке данных rsync-протокола 13 Ошибки при диагностике 14 Ошибка в IPC-коде 20 Получены сигналы или SIGUSR1, или SIGINT 21 Вызов waitpid() возвращает ошибку 22 Error allocating core memory buffers 23 Незавершенная передача из-за ошибки 24 Незавершенная передача из-за пропадания исходного файла 30 Время ожидания при передаче/приеме данных
CVSIGNORE Переменная окружения CVSIGNORE дополняет исключающие шаблоны из файла .cvsignore. За деталями см. параметр --cvs-exclude. RSYNC_RSH Переменная окружения RSYNC_RSH позволяет переопределить программу удаленной оболочки, используемую rsync'ом как транспорт. Параметры командной строки для оболочки указываются после имени программы, также как и для параметра -e. RSYNC_PROXY Переменная окружения RSYNC_PROXY позволяет указать rsync-клиенту использовать web-прокси для подключения к rsync-серверу. Вы должны указать прокси в виде пары hostname:port . RSYNC_PASSWORD Установка значения RSYNC_PASSWORD позволяет осуществить rsync-соединение к rsync-серверу без вмешательства пользователя для ввода пароля. Заметьте, что это не тоже самое, что и пароль для транспортной оболочки, например, ssh. USER или LOGNAME Переменные окружения USER или LOGNAME используются для определения пользователя по умолчанию, имя которого предоставляется rsync-серверу для аутентификации. HOME Переменная HOME используется для поиска пользовательского файла .cvsignore.
#!/bin/bash # полный путь к вашему списку каталогов BACKUP_LST=/etc/backup/backup.lst cat ${BACKUP_LST} | while read Res; do rsync -e ssh -acq --delete --force $Res backup@B:/var/backup$Res done
Примеры синхронизации Rsync | Losst
Потребность передачи файлов между серверами и компьютерами возникает довольно часто, особенно при администрировании нескольких устройств. Обычно для этих целей удобно использовать ssh и scp, но если файл очень большой, а изменена была только небольшая его часть, или вы хотите настроить постоянную автоматическую синхронизацию, то scp уже явно неидеальный вариант. Для этого существуют специальные утилиты. В этой статье мы рассмотрим одну из них. А именно будет рассмотрена rsync синхронизация в linux.
Rsync — это программное обеспечение с открытым исходным кодом, которое можно использовать для синхронизации файлов и папок с локального компьютера на удаленный и наоборот. Примечательная особенность Rsync — возможность передавать зашифрованные файлы с помощью SSH и SSL. Кроме того, здесь передача файлов выполняется в один поток, в отличие от других подобных программ, создающий отдельный поток для передачи каждого файла. Это увеличивает скорость и убирает дополнительные задержки, которые становятся проблемой при передаче большого количества маленьких файлов.
Возможно использование rsync для синхронизации файлов, каталогов, при этом может применяться сжатие и шифрование. Программа впервые была применена в июне 1996 года, она разработана Эндрю Тридгелом и Полом Маккерасом. Rsync синхронизация выполняется по протоколу RSYNC, который специально разработан не просто для передачи файлов между двумя компьютерами, а для их синхронизации. Если точнее, то передается не файл полностью, а только то, что было изменено.
Как вы уже поняли, в этой статье мы рассмотрим rsync примеры синхронизации, настройку rsync, а также ее основные возможности и опции.
Содержание статьи:
Особенности Rsync
Давайте сначала рассмотрим примечательные особенности Rsync:
- Возможность поддерживать синхронизацию целых деревьев каталогов;
- Можно сохранять символические ссылки, жесткие ссылки, владельцев и права файла, метаданные и время создания;
- Не требует особых привилегий;
- Передача файлов одним потоком;
- Поддержка RSH, SSH в качестве транспорта;
- Поддержка анонимного Rsync.
Синтаксис Rsync
Мы не будем подробно останавливаться на установке этой утилиты в системе. Она очень популярна, поэтому вы можете установить ее с помощью своего пакетного менеджера из официальных репозиториев. В Ubuntu команда установки будет выглядеть вот так:
sudo apt-get install rsync
А теперь, уже по традиции подобных статей, рассмотрим синтаксис команды rsync:
$ rsync опции источник приемник
В качестве источника и приемника может выступать удаленная или локальная директория. Например, ssh, rsync, samba сервер или локальная директория. Опции задают дополнительные параметры rsync.
Опции Rsync
Теперь давайте кратко рассмотрим параметры rsync. Здесь перечислены не все опции. Для более подробной информации смотрите man rsync:
- -v — Выводить подробную информацию о процессе копирования;
- -q — Минимум информации;
- -c — Проверка контрольных сумм для файлов;
- -a — Режим архивирования, когда сохраняются все атрибуты оригинальных файлов;
- -R — Относительные пути;
- -b — Создание резервной копии;
- -u — Не перезаписывать более новые файлы;
- -l — Копировать символьные ссылки;
- -L — Копировать содержимое ссылок;
- -H — Копировать жесткие ссылки;
- -p — Сохранять права для файлов;
- -g — Сохранять группу;
- -t — Сохранять время модификации;
- -x — Работать только в этой файловой системе;
- -e — Использовать другой транспорт, например, ssh;
- -z — Сжимать файлы перед передачей;
- —delete — Удалять файлы которых нет в источнике;
- —exclude — Исключить файлы по шаблону;
- —recursive — Перебирать директории рекурсивно;
- —no-recursive — Отключить рекурсию;
- —progress — Выводить прогресс передачи файла;
- —stat — Показать статистику передачи;
- —version — Версия утилиты.
Настройка сервера Rsync
Как вы понимаете, нельзя просто так взять и закинуть на первую попавшуюся машину файлы без установки на нее специального программного обеспечения. На удаленной машине должен быть установлен и настроен RSYNC, SSH, Samba или FTP сервер, с помощью которого Rsync сможет авторизоваться на машине и передавать туда файлы.
Рассмотрим минимальную настройку сервера rsync, для того чтобы могло быть выполнено копирование файлов rsync. Он позволит нам не только синхронизировать файлы на машину, но и получать их от туда.
Сначала создайте конфигурационный файл со следующим содержимым:
sudo vi /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
[share]
path = /tmp/share/
hosts allow = 192.168.56.1
hosts deny = *
list = true
uid = root
gid = root
read only = false
Здесь мы задаем путь к нашей папке для синхронизации, разрешаем доступ к серверу только с ip адреса (192.168.56.1) и запрещаем все остальные подключения. Параметры uid и gid указывают пользователя и группу, от которых будет запущен демон. Лучше не использовать root, а указать пользователя nobody и выдать ему права на ту папку, в которую будет выполняться синхронизация каталогов rsync.
Настройка rsync завершена, остается сохранить файл, запустить сервер rsync и добавить его в автозагрузку:
sudo systemctl start rsync
sudo systemctl enable rsync
Сервер будет предоставлять доступ к файлам без запроса пароля.
Примеры синхронизации Rsync
Дальше давайте рассмотрим использование rsync, примеры синхронизации.
1. Копирование и синхронизация файлов на локальном компьютере
Rsync позволяет синхронизировать файлы и папки в пределах одной машины. Давайте сначала рассмотрим использование rsync для синхронизации файла на локальном компьютере:
rsync -zvh file /tmp/backups/
Указав опцию —progress вы можете видеть сколько процентов уже скопировано, а сколько еще осталось:
rsync -zvh --progress file /tmp/backups/
2. Синхронизация папок на локальной машине
Синхронизация папок rsync выполняется так же просто, как и файлов:
rsync -zvh /home/user/documents /tmp/backups/
Если вы хотите, чтобы все атрибуты файлов, такие, как дата изменения и создания сохранялись, необходимо использовать опцию -a:
rsync -azvh /home/user/documents /tmp/backups/
3. Синхронизация с удаленным сервером
Ненамного сложнее синхронизировать файлы с удаленным сервером. Скопируем локальную папку documents, на удаленный сервер:
rsync -avz /home/sergiy/tmp/ [email protected]:/home/
По умолчанию rsync попытается использовать транспорт ssh. Если вы хотите использовать ранее созданный сервер rsync, нужно указать это явно:
rsync -avz /home/sergiy/tmp/ rsync://192.168.56.102:/share
Точно также можно синхронизировать файлы с rsync из удаленного сервера:
rsync -avz [email protected]:/home/ /home/sergiy/tmp/
Адрес удаленного сервера записывается в таком формате:
имя_пользователя@адрес_машины/папка/на/удаленной_машине
Синхронизация папок rsync будет выполняться на стандартном порту.
4. Синхронизация файлов по SSH
Чтобы задать протокол подключения используется опция -e. При использовании SSH все передаваемые данные шифруются и передаются по защищенному каналу, таким образом, чтобы никто не мог их перехватить. Для использования SSH вам нужно знать пароль пользователя в системе.
Синхронизация файлов rsync с удаленного сервера по ssh будет выглядеть вот так:
rsync -avzhe ssh [email protected]:/root/install.log /tmp/
Если вы используете другой порт для ssh, то здесь его можно указать:
rsync -avzhe "ssh -p 22" [email protected]:/root/install.log /tmp/
А теперь передадим данные на тот же сервер:
rsync -avzhe ssh backup.tar [email protected]:/backups/
5. Просмотр прогресса при синхронизации
Для просмотра прогресса копирования файла с одной машины на другую используется опция progress:
rsync -avzhe ssh --progress /home/user/documents [email protected]:/root/documents
6. Синхронизация не всех файлов в rsync
Опции include и exclude позволяют указать какие файлы нужно синхронизировать, а какие исключить. Опции работают не только с файлами но и с директориями.
Например, скопируем все файлы, начинающиеся на букву R:
rsync -avze ssh --include 'R*' --exclude '*' [email protected]:/root/documents/ /root/documents
7. Удаление при синхронизации
Во время синхронизации можно удалять файлы, которых нет на машине откуда идет rsync синхронизация, для этого используется опция —delete.
Например:
rsync -avz --delete [email protected]:/documents/ /tmp/documents/
Если перед выполнением этой команды создать в папке файл которого нет на удаленном сервере, то он будет удален.
8. Максимальный размер файлов
Вы можете указать максимальный размер файлов, которые нужно синхронизировать. Для этого используется опция —max-size. Например, будем синхронизировать только файлы меньше 200 килобайт:
rsync -avzhe ssh --max-size='200k' /user/documents/ [email protected]:/root/documents
9. Удаление исходных файлов
Есть возможность удалять исходные файлы после завершения синхронизации с удаленным сервером:
rsync --remove-source-files -zvh backup.tar /tmp/backups/
Таким образом, файл backup.tar будет удален после завершения копирования в папку /tmp/backups.
10. Режим симуляции rsync
Если вы новичок, и еще не использовали rsync, то возможно захотите посмотреть как отработает команда без применения реальных действий в файловой системе. Для этого есть опция dry-run. Команда только выведет все выполняемые действия в терминал, без выполнения реальных изменений:
rsync --dry-run --remove-source-files -zvh backup.tar /tmp/backups/
11. Ограничить скорость передачи
Вы можете ограничить использование пропускной способности сети с помощью опции —bwlimit:
rsync --bwlimit=100 -avzhe ssh /user/home/documents/ [email protected]:/root/documents/
Как я уже писал выше, rsync синхронизирует только части файла, если вы хотите синхронизировать файл целиком используйте опцию -W:
rsync -zvhW backup.tar /tmp/backups/backup.tar
backup.tar
12. Автоматическая синхронизация папок rsync
Можно расписать автоматическую синхронизацию с помощью cron. Но в случае доступа к серверу по SSH необходимо будет создать ключ и загрузить его на сервер, чтобы аутентификация проходила без запроса пароля.
Создаем ключ:
ssh-keygen -t rsa
Загружаем ключ на сервер к с которым собираемся синхронизироваться:
ssh-copy-id -i /home/sk/.ssh/id_rsa.pub [email protected]
Теперь можем переходить к настройке расписания cron. Будем запускать синхронизацию каждый день:
crontab -e
00 05 * * * rsync -azvre ssh /home/user/Downloads/ 192.168.56.102:/share
rsync синхронизация каталогов будет выполняться каждый день в пять утра. Подробнее о настройке расписаний Cron можно почитать в отдельной статье.
Выводы
Теперь вы знаете все что нужно, чтобы настройка rsync была выполнена правильно. Мы рассмотрели некоторые примеры rsync синхронизации. И теперь вы можете использовать все это для решения своих задач. Я упустил какую-то полезную информацию или у вас остались вопросы? Напишите в комментариях!
Rsync — Пингвиньи радости
Материал из Пингвиньи радостей
Статья о программе для синхронизации файлов и каталогов Rsync
Rsync это программа для синхронизации файлов и каталогов с минимизацией трафика.
Rsync может быть запущен в режиме сервера для организации передачи файлов клиентам через порт и в режиме консольной файловой команды.
Порт используемый RSYNC-сервером по умолчанию TCP/873.
Сайт проекта rsync.samba.org
Установка
Пакет присутствует в хранилище пакетов debian.
Для установки пакета
После установки пакет готов к использованию.
Некоторые часто используемые команды
# rsync --daemon - запуск rsync-сервера вручную с файлом конфигурации по умолчанию /etc/rsyncd.conf # /etc/init.d/rsync restart - перезапуск rsync-сервера (при настройке запуска в режим демона) # rsync [options] /source/ /target/ - выполнение синхронизации содержимого каталога target из каталога source
Настройка RSYNC-сервера
RSYNC-сервер позволяет организовать передачу файлов клиентам через откраиваемый программой порт.
RSYNC-сервер может быть запущен вручную или автоматически при старте операционной среды.
Для запуска RSYNC-сервера вручную с произвольным файлом конфигурации может быть использована команда
# rsync --daemon --config=FILE
Для включения автозапуска сервера Rsync следует
- в файл /etc/default/rsync добавить параметры
RSYNC_ENABLE=true где переменная RSYNC_ENABLE может принимать значения: false - запретить запуск сервера rsync, true - запускать самостоятельный сервер rsync inetd - запускать сервер rsync при необходимости из супер-сервера inetd. RSYNC_CONFIG_FILE=/etc/rsyncd.conf если параметр не указан файл конфигурации будет считываться из /etc/rsyncd.conf, кроме тех случаев, когда rsync запускается поверх удаленной оболочки и не от суперпользователя. В этом случае выбирается rsyncd.conf из текущего каталога на удаленной машине (обычно $HOME). RSYNC_OPTS=opts добавление особенных (отличных от устанавливаемых по умолчанию) параметров запуска например, может быть указан адрес и/или порт, на котором следует принимать соединения "--address=192.168.0.10" (по умолчанию - все локальные адреса) "--port=8730" (по умолчанию - 873), чтобы указать на каком порту следует принимать соединения RSYNC_NICE=level изменение приоритета процесса в планировщике задач
- и перезапустить rsync-сервер.
В файле конфигурации rsyncd.conf могут быть использованы параметры
uid = rsyncd Идентификатор пользователя, от имени которого запускается rsync-сервер. gid = mirror Идентификатор группы, от имени которой запускается rsync-сервер. max connections = 50 Максимальное количество одновременных подключений. read only = yes Установка доступа к ресурсам "только чтение". list = yes Установка разрешения клиентам получать список файлов. Если запретить просмотр списка файлов, то клиенты смогут получить файл только зная его точное имя, syslog facility = local5 Установка уровня отладочных сообщений для syslog. dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz *.rar *.mp3 Установка шаблонов имён файлов, содержимое которых не нужно сжимать при передаче. use chroot = yes Установка изменения корневого каталог rsync-сервера на указанный в path. Изменение каталога может использоваться для повышения безопасности. outgoing chmod = Fu=rw,g=rw,o=,Du=rwx,g=rx,o= Установка права доступа к отдаваемым файлам. Поскольку протокол rsync позволяет вместе с содержимым файлов передавать права доступа к ним и идентификаторы владельца и группы, можно задать особые права доступа, которые будут заменять реальные права доступа к данному файлу или каталогу при его передаче по сети. [media] В квадратных скобках задаётся имя секции. Каждая секция обязана иметь собственный параметр path. Дополнительно в ней могут быть переопределены и значения глобальных параметров. path = /media/ comment = media files
Пример файла конфигурации /etc/rsyncd.conf syslog facility=daemon - стартовать в режиме демона pid file=/var/run/rsyncd.pid - с сохранением идентификатора процесса в файле /var/run/rsyncd.pid motd file = /etc/rsync/hello - отвечать клиенту в начале сессии приветствием из файла /etc/rsync/hello. transfer logging = yes log file = /var/log/rsyncd.log - вести протокол переданных клиенту файлов в /var/log/rsyncd.log log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes - по заданному формату [root] comment = rsync open for root - предоставлен доступ uid = root - от имени пользователя root gid = root - и группы root path = / - с доступом к корневому каталогу в терминах rsync-сервера list = yes - с возможностью его просмотра списка файлов read only = yes - но только для чтения hosts allow = hosts-name - и только с рабочей станции hosts-name (из /etc/hosts) hosts deny = 0.0.0.0/0.0.0.0 dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz - не сжимая при передаче файлы указанных расширений exclude from = /etc/rsync/rsyncd-exclude - и исключая файлы описанные в файле /etc/rsync/exclude
Ссылки
Синтаксис команды RSYNC
Синтаксис команды rsync
# rsync [параметры] <откуда> <куда>
где <откуда> и <куда> - источник и целевой объект Объектами копирования могут быть как файлы, так и папки, находящиеся как в пределах файловой системы, так и удалённо, например на SSH или RSYNC-сервере. [параметры] - необязательные параметры копирования/синхронизации, например -v, --verbose повышение детализации при копировании, например показывать название файлов -a, --archive режим архивации, объединяет несколько ключей -rlptgoD -r, --recursive копирование рекурсивно. просматривая все вложенные файлы и каталоги -l, --links сохранять символические ссылки -p, --perms сохранять права на файлы -t, --times сохранять время изменения файлов -g, --group сохранять группу файлов -o, --owner сохранять владельца файлов (работает только для суперпользователя) --devices сохранять файлы устройств (работает только для суперпользователя) --specials сохранять специальные файлы -D сохранять файлы устройств и специальны файлы, идентично --devices --specials -H, --hard-links сохранять жесткие ссылки -x, --one-file-system не выходить за пределы файловой системы -z, --compress сжимать файлы данных во время передачи --compress-level=NUM явное задание степени сжатия --skip-compress=LIST пропуск сжатия файлов с суффиксом LIST --progress показывать сколько процентов осталось до завершения и скорость передачи --numeric-ids не транслировать имена владельца и группы в цифровые UID и GID, оставить номера как есть --delete удалять файлы в приёмнике, которых уже нет в источнике --delete-before удалять файлы перед началом копирования --delete-during удалять файлы во время копирования --delete-delay удалять файлы после окончания копирования, но искать их во время --delete-after удалять файлы после окончания копирования --delete-excluded удалять файлы включая исключённые --exclude=PATTERN исключать копирование файлов соответствующие маске PATTERN --exclude-from=FILE получить маски исключаемых при копирование файлов из файла FILE --include=PATTERN не исключать копирование файлов соответствующие маске PATTERN --include-from=FILE получить маски неисключаемых при копирование файлов из файла FILE --files-from=FILE получить список копируемых файлов из файла FILE -e ssh использовать при копировании ssh -n, --dry-run пробный режим копирования без изменений --bwlimit=KBPS установка ограничения скорости передачи файлов
Примеры использования
Приняты сокращения в настоящем разделе:
<SRC_PATH> - путь до каталога, подлежащего резервному копированию <DEST_PATH> - путь до папки куда копируются данные
Синхронизация данных с RSYNC-сервера в целевую папку
# rsync -rlpgoDvsH --delete root@IP-RSYNC-SERVER::<SOURCE_PATH>/ <DEST_PATH>/ где -rlpgoDvsH - параметры копирования rroot@IP-RSYNC-SERVER::<SOURCE_PATH>/ - путь до источника данных в терминах rsync-сервера --delete - команда "удалять файлы" в резервном архиве, если они удалены на rsync-сервере
Синхронизация двух каталогов файловой системы
# rsync -avsq --delete -b --backup-dir=<LOCAL_PATH>/modify --suffix=.`date +%Y-%m-%d` <SRC_PATH>/ <DEST_PATH>/ где -avsq - параметры копирования -b --backup-dir=<LOCAL_PATH>/modify --suffix=.`date +%Y-%m-%d` - команда сохранять файлы которые изменялись в каталоге с присвоением расширения файлам даты резервного копирования
Показать список файлов без их копирования
# rsync -avn <SRC_PATH>/ <DEST_PATH>/ - список файлов, которые должны быть скопированы
Создание (только) структуры каталогов (без копирования файлов)
# rsync -avH -f"+ */" -f"- *" <SRC_PATH>/ <DEST_PATH>/
Скачивание больших файлов (с докачкой) на неустойчивых линиях
# rsync -avsH --partial --partial-dir="<PART_PATH/>" <SRC_PATH>/ <DEST_PATH>/ где -avsH - параметры копирования ---partial - установка сохранения даже не полностью скопированных файлов --partial-dir="<PART_PATH/>" - путь до папки куда сохраняются не полностью скопированные файлы --append-verify - установка проверки существующего файла для синхронизации лишь остатка не скопированного куска
Загрузка файлов с локальной системы на RSYNC-сервер с докачкой
# rsync -rvz --partial --append-verify <SRC_PATH>/ rsync://root@IP-RSYNC-SERVER:/PATH/ где -rvz - параметры копирования ---partial - установка сохранения даже не полностью скопированных файлов --append-verify - установка проверки полноты уже сохранённого файла и копирования только остатка
Пример настройки rsyncd.conf на RAYNC сервере [PATH] comment = tmp GW-HOME path = /DEST_PATH/ read only = no uid = nobody gid = nogroup hosts allow = 0.0.0.0/0.0.0.0 а для пути /DEST_PATH/ предоставлены, например права # mkdir /DEST_PATH/ # chmod 777 /DEST_PATH/
Копирование на FTP-сервер
# curlftpfs FTPSERVER:FTPPORT /tmp/ftp/ -o user=FTPUSER:FTPPASSW,allow_other - монтирование FTP-сервера с помощью программы curlftpfs # rsync -rzv --inplace --append --stats --timeout=7200 <SRC_PATH>/ <DEST_PATH>/ где -rzv - параметры копирования --inplace - обновление существующего файла --append - добавление данных к меньшему файлу --timeout=7200 - задержка для операций ввода-вывода
Ссылки
Литература
Справочная информация
- 28.04.2010: Rsync: создание статьи википедии, описание установки пакета
- 17.05.2010: Rsync: добавлено описание примера копирования данных с сервера rsync на локальную машину
- 13.11.2011: Rsync: актуализация описания, правка внешнего вида
- 23.03.2013: Rsync: добавлено описание Синтаксиса команды
- 26.03.2016: Rsync: добавлено описание Настройки сервера Rsync
- 21.02.2020: Rsync: добавлен пример копирования по FTP-протоколу
10 примеров использования Rsync в Linux
Rsync (Remote Sync) — это наиболее часто используемая команда для удаленного и локального копирования и синхронизации файлов и каталогов в системах Linux/Unix. С помощью команды rsync вы можете удаленно и локально копировать и синхронизировать данные между каталогами, дисками и сетевыми хранилищами, выполнять резервное копирование данных и зеркалирование между двумя компьютерами Linux.
В этой статье описывается 10 основных и дополнительных возможностей использования команды rsync для удаленной и локальной передачи файлов на компьютерах под управлением Linux. Вам не нужно быть root-пользователем для запуска команды rsync.
Некоторые преимущества и особенности команды Rsync:
- Она эффективно копирует и синхронизирует файлы в/или из удаленной системы.
- Поддерживает копирование ссылок, устройств, владельцев, групп и разрешений.
- Это быстрее, чем использование команды scp (Secure Copy), потому что rsync использует протокол удаленного обновления, который позволяет передавать только различия между двумя наборами файлов. В первый раз он копирует все содержимое файла или каталога из источника в место назначения, но со следующего раза он копирует только измененные блоки и байты в место назначения.
- Remote Sync потребляет меньшую пропускную способность, поскольку использует метод сжатия и распаковки.
Базовый синтаксис команды rsync
# rsync options source destination
Некоторые общие параметры, используемые с командами rsync:
- -v: подробный вывод.
- -r: рекурсивно копирует данные (но не сохраняет временные метки и разрешения при передаче данных).
- -a: режим архива, позволяет рекурсивно копировать файлы, а также сохраняет символические ссылки, права доступа к файлам, права владения пользователей и групп и временные метки.
- -z: сжатие данных файла.
- -h: human-readable, информация на выводе в формате, удобном для чтения.
Установка rsync на вашем устройстве с Linux
Мы можем установить пакет Remote Sync с помощью следующей команды:
# yum install rsync (On Red Hat) #sudo apt-get install rsync (On Debian/Ubuntu)
1. Копирование/синхронизация файлов и локальный каталог
Копирование/синхронизация файлов на локальном компьютере
Следующая команда синхронизирует файл на локальном компьютере из одного места в другое. В этом примере, имя файла backup.tar необходимо скопировать или синхронизировать в папку /tmp/backups/:
# rsync -zvh backup.tar /tmp/backups/
Если место назначения еще не существует, rsync автоматически его создаст.
Копирование/синхронизация каталога на локальном компьютере
Следующая команда перенесет или синхронизирует все файлы из одного каталога в другой на одном компьютере. В этом примере, в папке /etc/firefox находятся некоторые файлы, и мы хотим, чтобы этот каталог был скопирован в папку /tmp/backups/:
[root@sedicomm]sudo rsync -avzh /etc/firefox /tmp/backups/
2. Копирование/синхронизация файлов и каталога на сервер или с сервера
Копирование каталога с локального сервера на удаленный сервер
Эта команда синхронизирует каталог с локального компьютера на удаленный компьютер. Например: на вашем локальном компьютере есть папка «firefox», которая содержит файлы, и вы хотите, чтобы содержимое этого локального каталога отправлялось на удаленный сервер, вы можете использовать следующую команду:
[root@sedicomm]$ rsync -avz rpmpkgs/ [email protected]:/home/ [email protected]'s password: sending incremental file list ./ httpd-2.2.3-82.el5.centos.i386.rpm mod_ssl-2.2.3-82.el5.centos.i386.rpm nagios-3.5.0.tar.gz nagios-plugins-1.4.16.tar.gz sent 4993369 bytes received 91 bytes 399476.80 bytes/sec total size is 4991313 speedup is 1.00
Копирование/синхронизация удаленного каталога на локальный компьютер
Эта команда поможет вам синхронизировать удаленный каталог с локальным каталогом. В этом примере каталог /home/tarunika/rpmpkgs, который находится на удаленном сервере, копируется на ваш локальный компьютер по пути /tmp/myrpms:
[root@user]# rsync -avzh [email protected]:/home/tarunika/rpmpkgs /tmp/myrpms [email protected]'s password: receiving incremental file list created directory /tmp/myrpms rpmpkgs/ rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm rpmpkgs/nagios-3.5.0.tar.gz rpmpkgs/nagios-plugins-1.4.16.tar.gz sent 91 bytes received 4.99M bytes 322.16K bytes/sec total size is 4.99M speedup is 1.00
3. Rsync с SSH
Вместе с Remote Sync мы можем использовать SSH (Secure Shell) для передачи данных. Используя протокол SSH при передаче наших данных, вы можете быть уверены, что ваши данные передаются в защищенном соединении с шифрованием, чтобы никто не мог прочитать их во время передачи в интернете.
Также, когда мы используем rsync, нам нужно предоставить пароль user/root для выполнения этой конкретной задачи. При использовании опции SSH ваши логины будут отправляться в зашифрованном виде, чтобы ваш пароль был в безопасности.
Копирование файла с удаленного сервера на локальный сервер с SSH
Чтобы указать протокол с помощью rsync, вам нужно указать параметр «-e» с названием протокола, который вы хотите использовать. В этом примере, мы будем использовать «ssh» с опцией «-e» и выполнять передачу данных:
[root@sedicomm]# rsync -avzhe ssh [email protected]:/root/install.log /tmp/ [email protected]'s password: receiving incremental file list install.log sent 30 bytes received 8.12K bytes 1.48K bytes/sec total size is 30.74K speedup is 3.77
Копирование файла с локального сервера на удаленный сервер с SSH:
[root@sedicomm]# rsync -avzhe ssh backup.tar [email protected]:/backups/ [email protected]'s password: sending incremental file list backup.tar sent 14.71M bytes received 31 bytes 1.28M bytes/sec total size is 16.18M speedup is 1.10
4. Отображение прогресса при передаче данных с rsync
Чтобы показать прогресс при переносе данных с одного компьютера на другой, мы можем использовать для него параметр «-progress». Он отображает файлы и время, оставшееся до завершения передачи:
[root@sedicomm]# rsync -avzhe ssh --progress /home/rpmpkgs [email protected]:/root/rpmpkgs [email protected]'s password: sending incremental file list created directory /root/rpmpkgs rpmpkgs/ rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm 1.02M 100% 2.72MB/s 0:00:00 (xfer#1, to-check=3/5) rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm 99.04K 100% 241.19kB/s 0:00:00 (xfer#2, to-check=2/5) rpmpkgs/nagios-3.5.0.tar.gz 1.79M 100% 1.56MB/s 0:00:01 (xfer#3, to-check=1/5) rpmpkgs/nagios-plugins-1.4.16.tar.gz 2.09M 100% 1.47MB/s 0:00:01 (xfer#4, to-check=0/5) sent 4.99M bytes received 92 bytes 475.56K bytes/sec total size is 4.99M speedup is 1.00
5. Использование опций –include и –exclude
Эти две опции позволяют нам включать и исключать файлы, указав соответствующие параметры. С помощью этой опции мы можем указать те файлы или каталоги, которые вы хотите включить в синхронизацию, и исключить файлы и папки, которые вы не хотите передавать.
В этом примере, команда Remote Sync будет включать только те файлы и каталог, которые начинаются с «R» и исключают все другие файлы и каталог:
[root@sedicomm]# rsync -avze ssh --include 'R*' --exclude '*' [email protected]:/var/lib/rpm/ /root/rpm [email protected]'s password: receiving incremental file list created directory /root/rpm ./ Requirename Requireversion sent 67 bytes received 167289 bytes 7438.04 bytes/sec total size is 434176 speedup is 2.59
6. Использование опции –delete
Если файл или каталог не существует в источнике, но уже существует в месте назначения, вы можете удалить этот существующий файл/каталог в месте назначения во время синхронизации.
Мы можем использовать опцию «-delete» для удаления файлов, которых нет в исходной директории.
Источник и место назначения синхронизированы. Теперь создаем новый файл test.txt в место назначения:
[root@sedicomm]# touch test.txt [root@sedicomm]# rsync -avz --delete [email protected]:/var/lib/rpm/ . Password: receiving file list ... done deleting test.txt ./ sent 26 bytes received 390 bytes 48.94 bytes/sec total size is 45305958 speedup is 108908.55
В месте назначения появился новый файл с именем test.txt, при синхронизации с источником с параметром «-delete» он удалил файл test.txt.
7. Установка максимального размера файлов для передачи
Вы можете указать максимальный размер файла для передачи или синхронизации. Вы можете сделать это с опцией «–max-size». В этом примере максимальный размер файла составляет 200 КБ, поэтому эта команда будет передавать только те файлы, которые равны или меньше 200 КБ.
[root@sedicomm]# rsync -avzhe ssh --max-size='200k' /var/lib/rpm/ [email protected]:/root/tmprpm [email protected]'s password: sending incremental file list created directory /root/tmprpm ./ Conflictname Group Installtid Name Provideversion Pubkeys Requireversion Sha1header Sigmd5 Triggername __db.001 sent 189.79K bytes received 224 bytes 13.10K bytes/sec total size is 38.08M speedup is 200.43
8. Автоматическое удаление исходных файлов после успешной передачи
Теперь предположим, что у вас есть основной веб-сервер и сервер резервного копирования данных, вы создали ежедневную резервную копию и синхронизировали ее с вашим сервером резервного копирования. Вы не хотите хранить эту локальную копию резервной копии на своем веб-сервере.
Итак, вы будете ждать завершения передачи, а затем вручную удалите этот локальный файл резервной копии? Конечно же нет. Это автоматическое удаление может быть выполнено с помощью опции “-remove-source-files“:
[root@sedicomm]# rsync --remove-source-files -zvh backup.tar /tmp/backups/ backup.tar sent 14.71M bytes received 31 bytes 4.20M bytes/sec total size is 16.18M speedup is 1.10 [root@sedicomm]# ll backup.tar ls: backup.tar: No such file or directory
9. Пробный запуск с rsync
Если вы новичок, используете Remote Sync и не знаете, что именно делает ваша команда, rsync действительно может “испортить” файлы в вашей папке назначения. И тогда восстановление может быть очень утомительной работой.
Использование этой опции не вносит никаких изменений, только делает пробный запуск команды и показывает результат команды, если выходные данные показывают точно то же, что вы хотите сделать, то вы можете удалить опцию «–dry-run» из вашей команды и запустить на терминале:
root@sedicomm]# rsync --dry-run --remove-source-files -zvh backup.tar /tmp/backups/ backup.tar sent 35 bytes received 15 bytes 100.00 bytes/sec total size is 16.18M speedup is 323584.00 (DRY RUN)
10. Установка ограничения полосы пропускания и файла передачи
Вы можете установить ограничения полосы пропускания при передаче данных с одного компьютера на другой с помощью опции “–bwlimit“. Эта опция позволяет нам ограничить I/O пропускную способность:
[root@sedicomm]# rsync --bwlimit=100 -avzhe ssh /var/lib/rpm/ [email protected]:/root/tmprpm/ [email protected]'s password: sending incremental file list sent 324 bytes received 12 bytes 61.09 bytes/sec total size is 38.08M speedup is 113347.05
Кроме того, по умолчанию rsync синхронизирует только измененные блоки и байты. Если вы хотите явно синхронизировать весь файл, тогда вы используете опцию “-W“:
[root@sedicomm]# rsync -zvhW backup.tar /tmp/backups/backup.tar backup.tar sent 14.71M bytes received 31 bytes 3.27M bytes/sec total size is 16.18M speedup is 1.10
На этом все! Вы можете просмотреть страницы руководства пользователя для получения дополнительной информации о команде rsync.
Спасибо за уделенное время на прочтение статьи о Remote Sync!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco и Linux с трудоустройством!
Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
- Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
- Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
- Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
- Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
- Если хотите индивидуальный график — обсудим и осуществим.
- Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
- отредактировать резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Как использовать команду rsync для копирования данных локально и через SSH
Копирование файлов из одного места в другое является довольно простой задачей и может быть легко достигнуто с помощью команды cp. Однако иногда приходится делать немного больше. Именно здесь команда rsync приходит, особенно когда вы передаете файлы большего размера. Rsync (Remote Sync) — это инструмент командной строки на основе Linux, который можно использовать для синхронизации и копирования файлов между локальным и удаленным серверами. Это позволяет синхронизировать файлы между двумя каталогами на одном компьютере, между каталогами на двух разных компьютерах в одной сети, между двумя каталогами в удаленной системе.
Основным преимуществом rsync является то, что вместо слепого копирования всего содержимого вместо этого он анализирует и передает только различия между источником и назначением, что, возможно, экономит системные ресурсы и пропускную способность. Некоторые другие преимущества rsync заключаются в следующем:
- Сжимает файлы перед передачей
- Может просматривать индикатор выполнения при передаче данных
- Процесс копирования может быть приостановлен и возобновлен позже
- Допускается передача через соединение SSH
В этой статье мы рассмотрим объясните, как использовать rsync для копирования данных в Linux. Мы будем использовать Debian 10 для описания процедуры, упомянутой в этой статье.
Rsync устанавливается в большинстве операционных систем Linux по умолчанию. Однако, если он не установлен, вы можете установить его, выполнив следующие действия:
Запустите приложение Terminal в вашей системе, перейдя на вкладку Activities в верхнем левом углу рабочего стола Debian. Затем в строке поиска введите терминал . Когда появится значок терминала, щелкните по нему, чтобы запустить его.
Теперь выполните приведенную ниже команду в Терминале для установки утилиты rsync:
$ apt install rsync
Каждая команда rsync начинается с rsync , за которой следует опция, в которой вы можете указать различные параметры. Rsync предоставляет ряд опций, которые дают вам возможность управлять спецификациями передачи. Затем есть источник и пункт назначения, который зависит от того, являются ли они удаленным или локальным компьютером.
Основной синтаксис rsync:
$ rsync [option] [source] [destination]
Некоторые из общих опций, используемых с командами rsync:
- -v : verbose
- -a : режим архивирования, он позволяет рекурсивно копировать файлы и сохраняет символические ссылки, права доступа к файлам, владение пользователями и группами и временные метки
- -z : сжимает данные
- -h : удобочитаемо, выводит числа в удобочитаемом формате
- –max-size = SIZE, передача файлов с указанным минимальным SIZE
- –min-size = SIZE, передача файлов с указанным максимальным SIZE
Теперь мы объясним некоторые примеры использования rsync с этими параметрами.
Копировать файлы и каталоги на локальный сервер
Копировать файлы локально
Вы можете скопировать один или несколько файлов из исходного каталога в каталог назначения на одном компьютере. Примером будет скопировать все .jpg файлы из каталога ~ / Downloads в каталог ~ / Documents с помощью следующей команды:
$ rsync -zvh /home/tin/Downloads/*.jpg /home/tin/Documents
После выполнения вышеуказанной команды все .jpg файлы в исходный каталог / home / tin / Downloads будет скопирован в целевой каталог / home / tin / Documents .
В приведенном выше примере мы использовали такие параметры, как -z для сжатия, -v для подробного вывода и -h для удобочитаемого вывода.
Копировать каталоги локально
Как и файлы, вы также можете скопировать всю папку и файлы, содержащиеся в каталоге, используя команду rsync. Например, можно скопировать все файлы из каталога ~ / Downloads в каталог ~ / Documents с помощью следующей команды:
$ rsync -zavh /home/tin/Downloads/ /home/tin/Documents
Скопировать файлы на удаленный сервер
Вы можете скопировать один или несколько файлов из исходного каталога в целевой каталог на удаленном компьютере. Например, чтобы скопировать файлы с локального на удаленный компьютер, используйте следующий синтаксис команды:
$ rsync [options] [local path] [user]@[remote server]:[remote path]
Копирование файлов на основе максимального размера
Также можно указать максимальный размер файла, который можно скопировать из источника. по назначению с помощью rsync. Для этого используйте следующий синтаксис команды:
$ rsync --max-size=”” [source] [destination]
Например, можно скопировать файлы с максимальным размером 4000 КБ из исходного ~ / Downloads в каталог назначения ~ / Documents . В этом случае файлы размером более 4000 КБ не будут скопированы в место назначения.
$ rsync --max-size=4000k /home/tin/Downloads/*.iso /home/tin/Documents/
Копирование файлов на основе минимального размера
Аналогично, вы также можете указать минимальный размер, который можно скопировать из источника в место назначения с помощью rsync. Для этого используйте следующий синтаксис команды:
$ rsync --min-size=”” [source] [destination]
Примером этого может быть копирование файлов с максимальным размером 2M из исходного ~ / Downloads в целевой каталог ~ / Documents , Файлы размером менее 2M не будут скопированы с помощью rsync.
$ rsync --min-size=2M /home/tin/Downloads/*.iso /home/tin/Documents/
Просмотр прогресса
Вы также можете просматривать прогресс при копировании файлов с помощью rsync. Добавьте флаг –progress , следуя команде rsync, как показано ниже:
$ rsync --progress [source] [destination]
Например, можно просмотреть прогресс при копировании файла из источника ~ / Downloads в пункт назначения ~ / Documents directory:
$ rsync --progress /home/tin/Downloads/VTS_03_1.VOB /home/tin/Documents
Исключить файлы
Вы также можете исключить определенные файлы при копировании файлов из источника в место назначения с помощью rsync. Примером может быть исключение всех файлов .pdf при копировании файлов из исходного ~ / Downloads в каталог назначения ~ / Documents .
rsync -zavh --exclude="*.pdf" /home/tin/Downloads/ /home/tin/Documents
При вводе следующей команды все файлы будут скопированы из источника в место назначения, кроме .pdf files.
Вот и все! Мы объяснили основное использование утилиты rsync для локального и удаленного копирования файлов между различными каталогами. Мы также объяснили несколько распространенных и полезных опций rync. Есть так много вариантов, кроме этих, которые вы можете использовать для управления каждым аспектом поведения передачи. Чтобы использовать эти параметры, см. Справочные страницы rsync.
Команда Rsync в Linux с примерами
rsync
— это быстрая и универсальная утилита командной строки для синхронизации файлов и каталогов между двумя местоположениями через удаленную оболочку или с / на удаленный демон Rsync. Он обеспечивает быструю инкрементную передачу файлов, передавая только различия между источником и местом назначения.
Rsync можно использовать для зеркального отображения данных, инкрементного резервного копирования, копирования файлов между системами, а также в качестве замены команд scp
, sftp
и cp
.
В этой статье объясняется, как использовать rsync
на практических примерах и подробных объяснениях наиболее распространенных параметров rsync
.
Установка Rsync
Утилита rsync
предустановлена в большинстве дистрибутивов Linux и macOS. Если в вашей системе не установлен rsync
, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива.
Установите Rsync в Ubuntu и Debian
sudo apt install rsync
Установите Rsync на CentOS и Fedora
sudo yum install rsync
Синтаксис команды Rsync
Прежде чем перейти к использованию команды rsync
, давайте начнем с обзора основного синтаксиса.
Выражения утилиты rsync
имеют следующую форму:
Local to Local: rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]
OPTION
— параметры rsync .-
SRC
— Исходный каталог. -
DEST
— целевой каталог. -
USER
— удаленное имя пользователя. -
HOST
— удаленное имя хоста или IP-адрес.
rsync
предоставляет ряд параметров, управляющих поведением команды. Наиболее широко используемые варианты:
-a
,--archive
, режим архива, эквивалент-rlptgoD
. Этот параметр указываетrsync
рекурсивно синхронизировать каталоги, передавать специальные и блочные устройства, сохранять символические ссылки, время модификации, группы, владение и разрешения.-
-z
,--compress
. Эта опция заставляетrsync
сжимать данные при их отправке на конечный компьютер. Используйте эту опцию, только если подключение к удаленному компьютеру медленное. -
-P
, что эквивалентно--partial --progress
. Когда используется эта опция,rsync
показывает индикатор выполнения во время передачи и сохраняет частично переданные файлы. Это полезно при передаче больших файлов по медленным или нестабильным сетевым соединениям. -
--delete
. Когда используется эта опция,rsync
удаляет посторонние файлы из места назначения. Это полезно для зеркалирования. -
-q
,--quiet
. Используйте эту опцию, если вы хотите подавить сообщения, не связанные с ошибками. -
-e
. Эта опция позволяет вам выбрать другую удаленную оболочку. По умолчаниюrsync
настроен на использование ssh.
Базовое использование Rsync
Самый простой вариант использования rsync
— это копирование одного файла из одного в другое локальное расположение. Вот пример:
rsync -a /opt/filename.zip /tmp/
Пользователь, выполняющий команду, должен иметь разрешения на чтение в исходном местоположении и разрешения на запись в месте назначения.
Если пропустить имя файла из места назначения, файл будет скопирован с текущим именем. Если вы хотите сохранить файл под другим именем, укажите новое имя в целевой части:
rsync -a /opt/filename.zip /tmp/newfilename.zip
Настоящая мощь rsync
проявляется в синхронизации каталогов. В приведенном ниже примере показано, как создать локальную резервную копию файлов веб-сайта:
rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/
Если целевой каталог не существует, rsync
создаст его.
Стоит отметить, что rsync
разному обрабатывает исходные каталоги с помощью завершающей косой черты ( /
). Если исходный каталог имеет косую черту в конце, команда скопирует только содержимое каталога в целевой каталог. Если косая черта в конце опущена, rsync
копирует исходный каталог в целевой каталог.
Использование
rsync
для синхронизации данных с / на удаленную машину
При использовании rsync
для удаленной передачи данных его необходимо установить как на исходном, так и на целевом компьютере. Новые версии rsync
настроены на использование SSH в качестве удаленной оболочки по умолчанию.
В следующем примере мы переносим каталог с локального компьютера на удаленный:
rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
Если вы не установили SSH-вход без пароля для удаленного компьютера, вам будет предложено ввести пароль пользователя.
Чтобы передать данные с удаленного компьютера на локальный, используйте удаленное местоположение в качестве источника:
rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Если SSH на удаленном хосте прослушивает порт, отличный от порта по умолчанию 22, укажите порт с помощью параметра -e
:
rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/
При передаче больших объемов данных рекомендуется запускать команду rsync
внутри сеанса экрана или использовать параметр -P
:
rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/
Исключить файлы и каталоги
Есть два варианта исключения файлов и каталогов. Первый вариант — использовать аргумент --exclude
и указать файлы и каталоги, которые вы хотите исключить, в командной строке.
При исключении файлов или каталогов необходимо использовать их относительные пути к исходному местоположению.
В следующем примере показано, как исключить node_modules
и tmp
:
rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/
Второй вариант — использовать параметр --exclude-from
и указать файлы и каталоги, которые вы хотите исключить из файла.
rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txt
Выводы
Мы показали вам, как использовать Rsync для копирования и синхронизации файлов и каталогов. Еще больше информации о Rsync можно найти на странице руководства пользователя Rsync .
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Похожие статьи
Использование rsync для удаления одного файла
Файл foo.txt существует на удаленной машине по адресу: /home/user/foo.txt
Он не существует на локальной машине.
Я хочу удалить foo.txt, используя rsync.
Я не знаю (и предполагаю для целей этого вопроса, что я не могу узнать), какие еще файлы находятся в /home/user на локальной или удаленной машине, поэтому я не могу просто синхронизировать весь каталог.
Какую команду rsync я могу использовать для удаления foo.txt на удаленной машине?
rsync
Поделиться
Источник
dirtside
02 февраля 2009 в 22:45
4 ответа
30
Попробуйте это:
rsync -rv --delete --include=foo.txt '--exclude=*' /home/user/ user@remote:/home/user/
(настоятельно рекомендую сначала запустить с --dry-run
, чтобы проверить его) Хотя, похоже, было бы проще использовать ssh…
ssh user@remote "rm /home/user/foo.txt"
Поделиться
David Z
02 февраля 2009 в 22:52
6
Это немного тривиально, но если, как и я, вы пришли на эту страницу в поисках способа удалить содержимое каталога с удаленного сервера с помощью rsync, вот как я это сделал:
Создайте пустую фиктивную папку:
mkdir mock
Синхронизировать с ним:
rsync -arv --delete --dry-run ~/mock/ remote_server:~/dir_to_clean/
Удалите
--dry-run
из строки выше, чтобы на самом деле сделать это.
Поделиться
letitbee
17 октября 2011 в 12:05
0
Как было предложено выше, используйте --dry-run
для предварительного тестирования. --delete
удаляет файлы в удаленном расположении на справочной странице rsync.
rsync -rv --delete [email protected]:full/path/to/foo.txt
Комментарий ниже, утверждающий, что это будет только список, неверен. Для перечисления используйте только --list-only
и удалите --delete
.
Поделиться
Rogue
22 июля 2019 в 14:34
- Замените все файлы, кроме одного, на rsync
В настоящее время я использую rsync следующим образом rsync -az —delete … Какую опцию я могу использовать с rsync для замены всех уже существующих файлов назначения, за исключением одного конкретного файла, который не должен быть заменен, если он уже существует? Конечно, если файл не существует…
- Применить параметры rsync, специфичные для файла
rsync предоставляет множество вариантов синхронизации файлов. Я пытаюсь найти вариант, который может сделать следующие вещи. 1. примените параметры rsync, указанные для всех файлов и каталогов в исходном каталоге. 2. Применить определенный параметр для каталога внутри источника реж. Для бывших:…
0
Просто столкнулся с той же проблемой, нужно было использовать rsync
для удаления удаленного файла, так как разрешались только rsync
и никакие другие команды SSH. Опция —remove-source-files (ранее известная как —remove-source-files ) сделала именно это:
rsync -avPn --remove-source-files remote:/home/user/foo.txt .
rm foo.txt
Как всегда, удалите опцию -n
, чтобы действительно выполнить это.
Поделиться
ckujau
31 мая 2020 в 07:49
Похожие вопросы:
Rsync неправильное использование суффикса даты
Я пытаюсь настроить Rsync для резервного копирования внешнего компьютера на сервер с помощью Rsync. Основы этого у меня есть вниз без проблем, хотя я, наконец, попал в дорожный блок. rsync batch…
Использование параметров Rsync включить и исключить для включения каталога и файла по шаблону
У меня возникли проблемы с правильным синтаксисом rsync , и мне интересно, действительно ли мой сценарий может быть обработан с помощью rsync . Во-первых, я подтвердил, что rsync отлично работает…
Rsync —link-dest опция для одного файла
Я использую rsync с опцией —link-dest для резервного копирования каталогов. Я хочу добиться того же самого с отдельными файлами, то есть я хочу скопировать файл srcfile в dstfile, зная, что у меня…
rsync и (пост) синхронизированный файл процесса
мне нравится rsync мои фотографии из одного (linux) раздела диска в другой (место резервного копирования) с помощью скрипта shell. Проблема в том, что мне нужно повторно масштабировать все…
rsync для резервного копирования одного файла, сгенерированного в динамических папках
Я пытаюсь создать резервную копию только одного файла, который генерируется другим приложением в динамических именованных папках. например: parent_folder/ back_01 -> file_blabla.zip (timestam…
Замените все файлы, кроме одного, на rsync
В настоящее время я использую rsync следующим образом rsync -az —delete … Какую опцию я могу использовать с rsync для замены всех уже существующих файлов назначения, за исключением одного…
Применить параметры rsync, специфичные для файла
rsync предоставляет множество вариантов синхронизации файлов. Я пытаюсь найти вариант, который может сделать следующие вещи. 1. примените параметры rsync, указанные для всех файлов и каталогов в…
rsync привилегии для удаления исходных и целевых файлов
Я использую rsync в своем сценарии bash для резервного копирования папки websites ‘public_html’ в локальную целевую папку на моем компьютере. Вот мой код rsync: if rsync -zavx -e ‘ssh -p22’ \…
Использование Rsync для синхронизации Mac с Synology NAS — изменение владельца файла и группы
У меня есть DS218+ Synology NAS и Mac. Мне удалось синхронизировать их с rsync, но во время этого процесса владелец папки/файла и группа меняются. Первоначально я позволил rsync создать папку, не…
rsync команда для удаления каталога в удаленной системе
Есть удаленная система, где у меня есть права на чтение/запись только в одном directoty. Я использую его для хранения результатов ночных сборок. Для загрузки результатов за определенный день я делаю…
17 полезных примеров команд rsync (удаленная синхронизация) в Linux
Как следует из названия, команда rsync используется для локальной и удаленной синхронизации (или копирования) файлов и каталогов. Одной из важных особенностей rsync является то, что он работает по «алгоритму дельта-передачи », что означает, что он будет только синхронизировать или копировать изменения из источника в место назначения, а не копировать весь файл, что в конечном итоге сокращает объем данных, отправляемых по сети. Вундеркинды Linux обычно используют команду rsync для повседневного управления резервным копированием, зеркалированием и восстановлением.Он использует удаленную оболочку, такую как SSH, при синхронизации файлов с локального компьютера на удаленный, и любой пользователь в системе может использовать команду rsync, поскольку для этого не требуются привилегии root или sudo.
В этой статье мы обсудим 17 полезных примеров команды rsync в Linux, эти примеры помогут, особенно новичкам в Linux, более эффективно управлять своими задачами синхронизации, зеркалирования и резервного копирования.
Команда Rsync доступна для всех UNIX и Linux подобных операционных систем.Когда мы выполняем минимальную установку CentOS и RHEL OS, тогда пакет rsync не является частью установки по умолчанию, поэтому для установки rsync на CentOS и RHEL выполните следующую команду yum
~] # yum install rsync -y
В операционных системах, подобных Debian (Ubuntu и Linux Mint), используйте следующую команду apt для установки инструмента rysnc,
~] # apt install rsync -y
Синтаксис команды rsync:
Локальная синхронизация: # rsync {options} {Source} {Destination}
Remote Sync pull: # rsync {options}
Remote Sync Push: # rsync
Некоторые из наиболее часто используемых параметров в команде rsync перечислены ниже:
- -v, –verbose Подробный вывод
- -q, –quiet подавить вывод сообщения
- -a, –archive архивные файлы и каталог во время синхронизации (-a равно следующим параметрам -rlptgoD)
- -r, –рекурсивная синхронизация файлов и каталогов рекурсивно
- -b, –backup создать резервную копию во время синхронизации
- -u, –update не копировать файлы из источника в место назначения, если файлы назначения новее
- -l, –links копировать символические ссылки как символические ссылки во время синхронизации
- -n, –dry-run выполнить пробный запуск без синхронизации
- -e, –rsh = КОМАНДА указать удаленную оболочку для использования в rsync
- -z, –compress сжимать данные файла во время передачи
- -h, –человечески понятное отображение выходных чисел в удобочитаемом формате
- –progress показать прогресс синхронизации во время передачи
Давайте перейдем к полезным примерам команды rsync
Пример: 1) Копирование или синхронизация файлов локально (rsync -zvh)
Предположим, мы хотим скопировать файл из домашнего каталога пользователя pkumar в папку / opt / back, выполните следующую команду rsync
[[электронная почта защищена] ~] # rsync -zvh / home / pkumar / OpenStack-Networking.pdf / opt / backup OpenStack-Networking.pdf отправлено 4,09 МБ получено 35 байтов 2,73 МБ / сек общий размер 6,15 млн ускорение 1,50 [[адрес электронной почты защищен] ~] #
Выше мы использовали такие параметры, как -z для сжатия, -v для подробного вывода и -h для вывода, удобочитаемого человеком.
Пример: 2) Локальное копирование или синхронизация каталога (rsync -zavh)
Предположим, мы хотим скопировать или синхронизировать домашний каталог пользователя pkumar в папку / opt / backup, выполните следующую команду rsync с параметрами -zavh ,
[[электронная почта защищена] ~] # rsync -zavh / home / pkumar / opt / backup отправка добавочного списка файлов pkumar / pkumar /.bash_logout pkumar / .bash_profile pkumar / .bashrc pkumar / OpenStack-Networking.pdf отправлено 4,09 МБ получено 96 байтов 8,19 МБ / сек общий размер 6,15 млн ускорение 1,50 [[адрес электронной почты защищен] ~] #
Давайте проверим, скопирован ли каталог или нет, выполните команду ниже,
[[электронная почта защищена] ~] # ls -ld / opt / backup / * -rwx ------. 1 корень root 6153239 7 апр, 00:25 /opt/backup/OpenStack-Networking.pdf drwx ------. 2 pkumar pkumar 90 7 апреля 00:25 / opt / backup / pkumar [[адрес электронной почты защищен] ~] #
Как мы видим, каталог «pkumar» создается в папке назначения, и его содержимое также копируется.В приведенном выше примере, если использовать trail / после исходной папки (/ home / pkumar /), тогда команда rsync не создаст каталог pkumar в месте назначения, а скопирует только содержимое.
[[электронная почта защищена] ~] # rsync -zavh / home / pkumar / / opt / backup
Пример: 3) Локальное рекурсивное копирование файлов и каталогов (rsync -zrvh или rsync -zavh)
Предположим, что у нас есть несколько файлов и каталогов внутри домашнего каталога пользователя pkumar, используйте следующую команду rsync для рекурсивного копирования файлов и каталогов, либо используйте параметр -a или -r для рекурсивного копирования файлов и каталогов.
Примечание : В команде rsync параметр -a используется для архивирования во время копирования или синхронизации, а кроме архивирования параметр -a также используется для следующих значений:
- рекурсивно копировать файлы и каталог
- копировать символические ссылки как символические ссылки
- сохранить разрешения
- группа консервов
- сохранить время модификации
- сохранить собственность
[[электронная почта защищена] ~] # rsync -zrvh / home / pkumar / opt / backup или [[электронная почта защищена] ~] # rsync -zavh / home / pkumar / opt / backup
Пример: 4) Копирование или синхронизация файлов и каталогов из локальной в удаленную систему
Предположим, мы хотим скопировать папку « / home / pkumar / techi » с локального компьютера на удаленный (192.168.1.29) под / opt
[[защита электронной почты] ~] # rsync -zarvh / home / pkumar / techi [защита электронной почты]: / opt Пароль [защищенный адрес электронной почты]: ………………………………………………………… techi / OTRS / techi / OTRS / Database-Selection-OTRS-Installation-CentOS7.jpg techi / OTRS / Install-OTRS-Accept-License.png techi / OTRS / Install-OTRS-CentOS7-RHEL7.jpg techi / OTRS / mysql-secure-installation-centos7-part2.jpg отправлено 34,85M байт получено 2,65K байт 6,34M байт / сек общий размер 37,77M ускорение 1,08 …………………………………………………………… [[адрес электронной почты защищен] ~] #
Пример: 5) Копирование или синхронизация файлов и каталогов с удаленного компьютера в локальную систему
Предположим, мы хотим скопировать файлы и каталоги с удаленной машины (192.168.1.29) в нашу локальную систему, в приведенном ниже примере я копирую удаленную папку «/ opt / rpms_db » на моем локальном компьютере в папку / tmp
[[защита электронной почты] ~] # rsync -zarvh [защита электронной почты]: / opt / rpms_db / tmp Пароль [защищенный адрес электронной почты]: получение инкрементного списка файлов …………………………………………………………… rpms_db / rpms_db / httpd-2.4.6-88.el7.centos.x86_64.rpm rpms_db / httpd-tools-2.4.6-88.el7.centos.x86_64.rpm rpms_db / postfix-2.10.1-7.el7.x86_64.rpm rpms_db / pytalloc-2.1.13-1.el7.x86_64.rpm rpms_db / samba-4.8.3-4.el7.x86_64.rpm rpms_db / samba-client-libs-4.8.3-4.el7.x86_64.rpm rpms_db / samba-common-4.8.3-4.el7.noarch.rpm rpms_db / samba-common-libs-4.8.3-4.el7.x86_64.rpm rpms_db / samba-common-tools-4.8.3-4.el7.x86_64.rpm rpms_db / samba-libs-4.8.3-4.el7.x86_64.rpm отправлено 484 байта получено 15,45 МБ 1,07 МБ / сек общий размер 16,37 млн ускорение 1,06 [[адрес электронной почты защищен] ~] #
Приведенная выше команда автоматически создаст папку «rpms_db» в папке / tmp на нашем локальном компьютере.
[[адрес электронной почты защищен] ~] # ls -l / tmp / всего 8 -rwx ------. 1 корень root 827 6 апр, 12:54 ks-script-avmuxw drwxr-xr-x. 2 root root 4096 7 апр 01:42 rpms_db -rw -------. 1 root root 0 6 апр 12:35 yum.log [[электронная почта защищена] ~] # ls -l / tmp / rpms_db / всего 16028 …………………………………… -rw-r - r--. 1 root root 2844028 12 ноя, 09:28 httpd-2.4.6-88.el7.centos.x86_64.rpm -rw-r - r--. 1 root root 92504 12 ноября 09:28 httpd-tools-2.4.6-88.el7.centos.x86_64.rpm -rw-r - r--. 1 root root 2558136 12 ноя, 09:44 postfix-2.10.1-7.el7.x86_64.rpm -rw-r - r--. 1 root root 17404 12 ноября 09:44 pytalloc-2.1.13-1.el7.x86_64.rpm -rw-r - r--. 1 root root 696472 12 ноя 09:46 samba-4.8.3-4.el7.x86_64.rpm -rw-r - r--. 1 root root 5070800 12 ноября 09:46 samba-client-libs-4.8.3-4.el7.x86_64.rpm -rw-r - r--. 1 корень root 210984 12 ноя, 10:19 samba-common-4.8.3-4.el7.noarch.rpm -rw-r - r--. 1 root root 167512 12 ноября 09:46 samba-common-libs-4.8.3-4.el7.x86_64.rpm -rw-r - r--. 1 root root 458380 12 ноя, 09:46 samba-common-tools-4.8.3-4.el7.x86_64.rpm -rw-r - r--. 1 root root 282332 12 ноября 09:46 samba-libs-4.8.3-4.el7.x86_64.rpm …………………………………… [[адрес электронной почты защищен] ~] #
Пример: 6) Укажите удаленную оболочку во время синхронизации (rsync -e ssh)
В команде rsync мы можем указать удаленную оболочку, например ssh, во время синхронизации, предположим, что мы хотим использовать безопасную связь между источником и целевой машиной через rsync, тогда мы должны использовать ssh в качестве удаленной оболочки, пример показан ниже
[[защита электронной почты] ~] # rsync -zarvh -e ssh [защита электронной почты]: / opt / rpms_db / tmp Пароль [защищенный адрес электронной почты]: получение инкрементного списка файлов ……………………………………………………………………………… rpms_db / rpms_db / httpd-2.4.6-88.el7.centos.x86_64.rpm rpms_db / httpd-tools-2.4.6-88.el7.centos.x86_64.rpm rpms_db / postfix-2.10.1-7.el7.x86_64.rpm rpms_db / pytalloc-2.1.13-1.el7.x86_64.rpm rpms_db / samba-4.8.3-4.el7.x86_64.rpm rpms_db / samba-client-libs-4.8.3-4.el7.x86_64.rpm rpms_db / samba-common-4.8.3-4.el7.noarch.rpm rpms_db / samba-common-libs-4.8.3-4.el7.x86_64.rpm rpms_db / samba-common-tools-4.8.3-4.el7.x86_64.rpm rpms_db / samba-libs-4.8.3-4.el7.x86_64.rpm отправлено 484 байта получено 15,45 МБ 1,82 МБ / сек общий размер 16.37M ускорение составляет 1,06 [[адрес электронной почты защищен] ~] #
Пример: 7) Отобразить ход синхронизации в выходных данных команды rsync
Если вы хотите видеть ход синхронизации или копирования в команде rsync, используйте « –progress », пример показан ниже
[[защита электронной почты] ~] # rsync -avh --progress [защита электронной почты]: / opt / rpms_db / tmp Пароль [защищенный адрес электронной почты]: получение инкрементного списка файлов …………………………………………………………………………………………………… .. rpms_db / rpms_db / httpd-2.4.6-88.el7.centos.x86_64.rpm 2,84 млн 100% 35,22 МБ / с 0:00:00 (xfr # 6, to-chk = 18/25) rpms_db / httpd-tools-2.4.6-88.el7.centos.x86_64.rpm 92,50K 100% 1,13 МБ / с 0:00:00 (xfr # 7, to-chk = 17/25) rpms_db / postfix-2.10.1-7.el7.x86_64.rpm 2,56M 100% 14,44 МБ / с 0:00:00 (xfr # 17, to-chk = 7/25) rpms_db / samba-4.8.3-4.el7.x86_64.rpm 696,47K 100% 3,71 МБ / с 0:00:00 (xfr # 19, to-chk = 5/25) rpms_db / samba-client-libs-4.8.3-4.el7.x86_64.rpm 5,07M 100% 19,90 МБ / с 0:00:00 (xfr # 20, to-chk = 4/25) rpms_db / самба-общий-4.8.3-4.el7.noarch.rpm 210.98K 100% 844.42kB / s 0:00:00 (xfr # 21, to-chk = 3/25) rpms_db / samba-common-libs-4.8.3-4.el7.x86_64.rpm 167,51 КБ 100% 667,70 КБ / с 0:00:00 (xfr # 22, to-chk = 2/25) rpms_db / samba-common-tools-4.8.3-4.el7.x86_64.rpm 458,38 КБ 100% 1,77 МБ / с 0:00:00 (xfr # 23, to-chk = 1/25) rpms_db / samba-libs-4.8.3-4.el7.x86_64.rpm 282,33K 100% 1,09 МБ / с 0:00:00 (xfr # 24, to-chk = 0/25) отправлено 484 байта получено 16,38 МБ 3,64 МБ / сек общий размер 16,37M ускорение 1.00 [[адрес электронной почты защищен] ~] #
Читайте также: 14 примеров команд SCP для безопасной передачи файлов в Linux
Пример: 8) Скопируйте структуру каталогов без копирования файлов
Есть несколько сценариев, в которых мы хотим скопировать структуру каталогов, пропуская файлы только с локального компьютера на удаленный или наоборот.
Предположим, мы хотим скопировать структуру каталогов «/ home / pkumar» с локального компьютера на удаленный (192.168.1.29) в папку / opt.
[защита электронной почты] ~] # rsync -av -f "+ * /" -f "- *" / home / pkumar [защита электронной почты]: / opt / Пароль [защищенный адрес электронной почты]: список файлов здания... сделано ……………………………………………… pkumar / отправлено 43 байта получено 19 байтов 17,71 байт / сек общий размер 0, ускорение 0,00 [[адрес электронной почты защищен] ~] #
Пример: 9) Возобновить передачу больших файлов после сбоя в scp
В профиле администратора linux есть несколько сценариев, когда мы начали копирование большего файла с помощью команды scp, но оно было прервано в середине, и мы не можем позволить себе начать копирование его снова с помощью scp из-за его большого размера и затрат времени.
Таким образом, в этой ситуации можно использовать команду rsync, поскольку она может начать копирование файла с того места, где оно было остановлено или завершено, или, другими словами, rsync может передавать файлы, которые частично скопированы с помощью команды scp.C Прервано сигналом 2.
[[электронная почта защищена] ~] #
[[защита электронной почты] ~] # rsync -P —rsh = ssh [защита электронной почты]: / root / ubuntu-18.04-desktop-amd64.iso / opt
Пароль [защищенный адрес электронной почты]:
убунту-18.04-рабочий стол-amd64.iso
1,921,843,200 100% 18,47 МБ / с 0:01:39 (xfr # 1, to-chk = 0/1)
[[адрес электронной почты защищен] ~] #
Пример: 10) Удалить файлы в месте назначения, если его нет в источнике (–delete)
Если вы уже синхронизировали файлы из источника в место назначения и из источника вы удалили файлы, вы можете заставить команду rsync удалить файлы в месте назначения с помощью опции –delete, пример показан ниже
[[защита электронной почты] ~] # rsync -avz --delete / opt / rpms_db [защита электронной почты]: / tmp / rpms_db Пароль [защищенный адрес электронной почты]: отправка добавочного списка файлов удаление rpms_db / apr-util-1.5.2-6.el7.x86_64.rpm удаление rpms_db / apr-1.4.8-3.el7_4.1.x86_64.rpm rpms_db / отправлено 862 байта получено 105 байтов 276,29 байт / сек общий размер 15 947 152 ускорение 16 491,37 [[адрес электронной почты защищен] ~] #
Пример: 11) Установить ограничение на размер передаваемого файла (–max-size)
Если вы не хотите передавать или копировать большие файлы с помощью rsync, используйте опцию ‘- max-size = {define-size-here}’ , предположим, что мы не хотим передавать файлы размером более 500К,
Примечание. Чтобы указать размер в МБ, используйте M, а для ГБ — G.
[[защита электронной почты] ~] # rsync -avz --max-size = '500K' / opt / rpms_db [защита электронной почты]: / tmp
Пример: 12) Не синхронизировать / копировать измененный файл в место назначения
Есть несколько сценариев, в которых мы изменили файлы в месте назначения, и мы не хотим перезаписывать измененные файлы из источника во время синхронизации, поэтому этого можно легко добиться с помощью параметра -u в команде rsync
[[защита электронной почты] ~] # rsync -avzu [защита электронной почты]: / opt / techi / home / pkumar / techi Пароль [защищенный адрес электронной почты]: получение инкрементного списка файлов отправлено 37 байт, получено 4 960 байт 1427.71 байт / сек общий размер 37,771,649 ускорение 7,558,87 [[адрес электронной почты защищен] ~] #
Пример: 13) Удалить файлы из источника после синхронизации (–remove-source-files)
Предположим, вы хотите удалить файлы из источника после завершения синхронизации с помощью команды rsync. В приведенном ниже примере папка из локальной системы « /home/pkumar/techi.tgz » синхронизируется с удаленной системой (192.168.1.29), после завершения синхронизации файл удаляется из источника.
[[защита электронной почты] ~] # rsync --remove-source-files -zvh /home/pkumar/techi.tgz [защита электронной почты]: / opt Пароль [защищенный адрес электронной почты]: techi.tgz отправлено 597 байт принято 43 байта 182,86 байт / сек общий размер 518 ускорение 0,81 [[электронная почта защищена] ~] # [[адрес электронной почты защищен] ~] # ls -l /home/pkumar/techi.tgz ls: нет доступа к /home/pkumar/techi.tgz: нет такого файла или каталога [[адрес электронной почты защищен] ~] #
Пример: 14) Команда rsync пробного запуска перед фактической синхронизацией
Могут быть ситуации, когда мы не говорим о поведении команды rsync, поэтому в таких случаях лучше выполнить пробный запуск rsync
[[электронная почта защищена] ~] # rsync --dry-run --remove-source-files -zvh / home / pkumar / projects.tar [адрес электронной почты защищен]: / opt Пароль [защищенный адрес электронной почты]: projects.tar отправлено 51 байт получено 19 байтов 7,37 байт / сек общий размер - 981,24M, ускорение - 14017682,29 (СУХОЙ ЗАПУСК) [[адрес электронной почты защищен] ~] #
Пример: 15) Включить и исключить файлы во время синхронизации с rsync
Бывают ситуации, когда мы хотим скопировать или синхронизировать файлы и каталоги определенного типа и хотим исключить файлы или каталоги определенного типа. Команда Rsync поддерживает параметры включения и исключения.
В приведенном ниже примере нужно скопировать файлы типа pdf и rpm и исключить файлы типа png.
[[защита электронной почты] ~] # rsync -avz -e ssh --include '* .pdf * .rpm' --exclude '* .png' / home / pkumar / techi [защита электронной почты]: / opt Пароль [защищенный адрес электронной почты]: отправка добавочного списка файлов techi / techi / OpenStack-Networking.pdf techi / httpd-2.4.6-88.el7.centos.x86_64.rpm techi / httpd-tools-2.4.6-88.el7.centos.x86_64.rpm techi / postfix-2.10.1-7.el7.x86_64.rpm отправлено 9 469 912 байт, получено 96 байт 2 705 716.57 байт / сек общий размер 11 647 907 ускорение 1,23 [[адрес электронной почты защищен] ~] #
Пример: 16) Установить ограничение на скорость передачи данных в rsync (–bwlimit =
В команде rsync мы можем установить предел пропускной способности для передачи данных с одного компьютера на другой, используйте параметр « –bwlimit = Предположим, мы хотим установить максимальную скорость передачи данных (скорость) 600 КБ / с с помощью rsync, пример показан ниже Используйте параметр « -i » в команде rsync, чтобы указать разницу в файлах и каталогах между источником и местом назначения. Пример показан ниже Как видно из выходных данных команды выше, есть разница в файле с именем «projects.txt» в месте назначения. Ниже приведены значения ключевых слов в выводе выше, . Это все из этого руководства. Если эти примеры помогут вам лучше понять команду rsync, поделитесь своими отзывами и комментариями. Также прочтите : 17 полезная команда tar с практическими примерами в Linux Также прочтите : Как вращать и сжимать файлы журналов в Linux с помощью Logrotate Команда Rsync можно использовать для зеркального отображения данных, инкрементного резервного копирования, копирования файлов между системами, а также в качестве замены для В этой статье объясняется, как использовать Утилита Как использовать синтаксис команды 9025 Перед переходом rsync , давайте начнем с обзора основного синтаксиса. Выражения утилиты Самый простой вариант использования Пользователь, выполняющий команду, должен иметь разрешения на чтение в исходном местоположении и разрешения на запись в месте назначения. Если вы не укажете имя файла в месте назначения, файл будет скопирован с текущим именем. Если вы хотите сохранить файл под другим именем, укажите новое имя в части назначения: Реальная мощность Если целевой каталог не существует, Стоит отметить, что При использовании В следующем примере мы переносим каталог с локального компьютера на удаленный: Если вы не установили пароль без пароля SSH вход Для передачи данных с удаленного компьютера на локальный используйте удаленное расположение в качестве источника: Если SSH на удаленном узле прослушивая порт, отличный от порта по умолчанию 22, укажите порт с помощью параметра При передаче больших объемов данных рекомендуется запускать команду Есть два варианта исключения файлов и каталоги.Первый вариант - использовать аргумент При исключении файлов или каталогов В следующем примере показано, как исключить каталоги Второй вариант - использовать параметр /exclude-file.txt Мы показали вам, как использовать Rsync для копировать и синхронизировать файлы и каталоги. Подробнее о Rsync можно узнать в Руководстве пользователя Rsync. Не стесняйтесь оставлять комментарии, если у вас есть вопросы. Rsync ( Remote Sync ) - это наиболее часто используемая команда для удаленного копирования и синхронизации файлов и каталогов, а также локально в системах Linux / Unix . С помощью команды rsync вы можете удаленно и локально копировать и синхронизировать данные между каталогами, дисками и сетями, выполнять резервное копирование данных и зеркалировать между двумя компьютерами Linux. Rsync Локальная и удаленная синхронизация файлов В этой статье объясняется базовое и расширенное использование 10 команды rsync для удаленной и локальной передачи файлов на машинах под управлением Linux. Для выполнения команды rsync необязательно быть пользователем root . [Вам также может понравиться: Как синхронизировать файлы / каталоги с помощью Rsync с нестандартным портом SSH] Мы можем установить пакет rsync с помощью следующей команды в вашем дистрибутиве Linux. Следующая команда синхронизирует один файл на локальном компьютере из одного места в другое. В этом примере имя файла backup.tar необходимо скопировать или синхронизировать в папку / tmp / backups / . В приведенном выше примере вы можете видеть, что если место назначения еще не существует, rsync автоматически создаст каталог для места назначения. Локальные файлы Rsync Следующая команда перенесет или синхронизирует все файлы из одного каталога в другой каталог на том же компьютере. В этом примере / root / rpmpkgs содержит некоторые файлы пакетов rpm, и вы хотите, чтобы этот каталог был скопирован в папку / tmp / backups / . Локальный каталог Rsync Эта команда синхронизирует каталог с локального компьютера на удаленный. Например, , на вашем локальном компьютере есть папка « rpmpkgs », которая содержит несколько пакетов RPM , и вы хотите, чтобы содержимое этого локального каталога отправлялось на удаленный сервер, вы можете использовать следующую команду. Удаленная система каталогов Rsync Эта команда поможет вам синхронизировать удаленный каталог с локальным каталогом. В этом примере каталог / root / rpmpkgs , который находится на удаленном сервере, копируется на ваш локальный компьютер в / tmp / myrpms . Rsync удаленного каталога на локальный С rsync мы можем использовать SSH ( Secure Shell ) для передачи данных, используя протокол SSH при передаче наших данных, вы можете быть уверены, что ваши данные передаются в защищенном соединении с шифрованием, чтобы никто может читать ваши данные, пока они передаются по сети в Интернете. [Вам также может понравиться: Как защитить и укрепить сервер OpenSSH] Также, когда мы используем rsync , нам необходимо предоставить пароль пользователя / root для выполнения этой конкретной задачи, поэтому при использовании опции SSH ваши логины будут отправлены в зашифрованном виде, так что ваш пароль будет безопасно. Чтобы указать протокол с rsync , вам необходимо указать параметр « -e » с именем протокола, который вы хотите использовать. В этом примере мы будем использовать « ssh » с опцией « -e » и выполнять передачу данных. Rsync Копирование удаленного файла на локальный Rsync Копирование локального файла на удаленный [Вам также может понравиться: Как использовать Rsync для синхронизации новых или измененных / измененных файлов в Linux] Чтобы показать прогресс при передаче данных с одной машины на другую, мы можем использовать опцию « –progress» . Он отображает файлы и время, оставшееся до завершения передачи. Ход выполнения Rsync при копировании файлов Эти два параметра позволяют нам включить и исключить файлы , указав параметры с помощью этих параметров, которые помогают нам указать те файлы или каталоги, которые вы хотите включить в свою синхронизацию, и исключить файлы и папки, в которых вы не хотите быть переведен. Здесь, в этом примере, команда rsync будет включать только те файлы и каталог, которые начинаются с « R », и исключить все другие файлы и каталоги. Rsync Включить и исключить файлы Если файл или каталог не существует в источнике, но уже существует в месте назначения, вы можете удалить этот существующий файл / каталог в целевом устройстве во время синхронизации. Мы можем использовать опцию « –delete » для удаления файлов, которых нет в исходном каталоге. Источник и цель синхронизированы. Теперь создайте новый файл test.txt на цели. Target имеет новый файл под названием test.txt , при синхронизации с источником с опцией « –delete » он удалил файл test.txt . Параметр удаления Rsync Вы можете указать максимальный размер файла для передачи или синхронизации. Вы можете сделать это с помощью опции « –max-size ». В этом примере максимальный размер файла составляет 200k , поэтому эта команда будет передавать только те файлы, которые равны или меньше 200k . Rsync Установить максимальный размер передаваемых файлов Теперь предположим, что у вас есть главный веб-сервер и сервер резервного копирования данных, вы создали ежедневную резервную копию и синхронизировали ее со своим сервером резервного копирования. Теперь вы не хотите хранить эту локальную копию резервной копии на своем веб-сервере. Итак, вы дождетесь завершения передачи, а затем удалите этот локальный файл резервной копии вручную? Конечно нет.Это автоматическое удаление может быть выполнено с помощью опции « –remove-source-files ». Rsync Удалить исходный файл после передачи Если вы новичок в использовании rsync и не знаете, что именно будет делать ваша команда. Rsync действительно может испортить вещи в вашей целевой папке, а отмена действий может оказаться утомительной работой. [Вам также может понравиться: Как синхронизировать два веб-сервера / веб-сайта Apache с помощью Rsync] Использование этой опции не приведет к внесению каких-либо изменений в файлы и покажет вывод команды. Если вывод показывает то же самое, что вы хотите, то вы можете удалить опцию –dry-run из своей команды и запустить на терминале. Пробный запуск Rsync Вы можете установить ограничение полосы пропускания при передаче данных с одного компьютера на другой с помощью опции « –bwlimit ».Эта опция помогает нам ограничить пропускную способность I / O . Кроме того, по умолчанию rsync синхронизирует только измененные блоки и байты, если вы явно хотите синхронизировать весь файл, используйте с ним опцию « -W ». Теперь с rsync все, вы можете просмотреть справочных страниц , чтобы узнать о дополнительных параметрах. Оставайтесь на связи с Tecmint , чтобы в будущем получить еще больше увлекательных и интересных руководств. Оставьте свои комментариев и предложений . В этой статье показано, как использовать rsync . rsync Программа rsync позволяет синхронизировать каталоги локально или между двумя компьютерами. Rsync автоматически определяет, какие файлы разные или новые в двух местах, а затем синхронизирует каталоги. Вы можете использовать эту функцию для выполнения ряда задач. Например, вы можете использовать rsync для резервного копирования вашего веб-сайта на другой компьютер. В качестве альтернативы предположим, что у вас уже установлена среда разработки веб-сайта на другом сервере.Вы можете использовать rsync для развертывания этой среды в своей учетной записи хостинга A2. Если вы синхронизируете каталоги между двумя отдельными компьютерами, на них обоих должно быть установлено rsync . rsync Программа rsync имеет множество функций, но для начала достаточно следующих параметров командной строки: Если вы используете опцию -a , эта опция включается автоматически. Если вы используете опцию -a , эта опция включается автоматически. Используя эти параметры rsync , мы можем просмотреть несколько примеров. Предположим, вы хотите создать резервную копию файлов своего веб-сайта на другом сервере. Для этого выполните следующие действия: Чтобы создать резервную копию (или «отправить») вашего каталога public_html в учетную запись пользователя на удаленном сервере по адресу example.com , введите следующую команду: Эта команда предполагает, что удаленный сервер использует SSH на порту 22. Например, если вы выполняете резервное копирование на другой сервер хостинга A2, вы должны использовать следующую команду, потому что SSH работает на порту 7822: Другой распространенный сценарий - «извлечение» файлов из удаленного места. Например, у вас может быть настроена среда разработки на удаленном сервере. Вы можете использовать rsync для извлечения файлов из удаленного репозитория в свою учетную запись хостинга A2. При каждом последующем «извлечении» rsync будет обновлять только те файлы, которые изменились с момента последнего обновления, тем самым экономя время и пропускную способность.Для этого из домашнего каталога выполните следующую команду: После завершения rsync ваш каталог public_html будет содержать копию файлов в каталоге public_html удаленного сервера. Эта статья представляет собой лишь краткое введение в расширенные возможности rsync . Чтобы просмотреть официальную интерактивную документацию по программе rsync , посетите http: // rsync.samba.org/documentation.html. Примеры Rsync означает «удаленная синхронизация». Это инструмент удаленной и локальной синхронизации файлов, который помогает вам эффективно передавать файлы. Rsync работает быстрее, чем такие инструменты, как протокол безопасного копирования (SCP). Он использует алгоритм дельта-передачи, который сводит к минимуму передачу данных, копируя только те разделы файла, которые были обновлены. Некоторые из дополнительных функций Rsync включают: Вы можете только передавать файлы с локального на удаленный или с удаленного на локальный. Rsync не поддерживает передачу файлов от удаленного к удаленному. Теперь, когда вы знаете, что такое Rsync, давайте посмотрим, как с ним работать. Rsync работает аналогично другим инструментам удаленного управления сервером, таким как SSH и SCP. Вот основной синтаксис Rsync: Вот синтаксис для передачи файла из вашей локальной системы на удаленный сервер. Это также называется «выталкивающей» операцией. Вот как передать файл с удаленного сервера в вашу локальную систему, также называемая операцией «pull». Примечание. При работе с удаленными системами убедитесь, что у вас есть SSH-доступ к удаленной системе. Rsync устанавливает соединение с помощью SSH, чтобы разрешить передачу файлов. Rsync позволяет добавлять дополнительные параметры с помощью флагов командной строки. Давайте посмотрим на несколько полезных флагов. Если вы добавите параметр -r , RSync выполнит рекурсивную передачу файлов.Это полезно при работе с каталогами. Вот пример: Флаг -a используется для сохранения символических ссылок при передаче файлов. Флаг архива также сохраняет специальные файлы и файлы устройств, время модификации и разрешения из исходного каталога. Флаг архива также рекурсивно синхронизирует файлы, поэтому он используется чаще, чем флаг рекурсии. Вот как вы его используете: Вы также можете сжимать файлы с помощью флага -z .Сжатие файлов может снизить нагрузку на сеть и ускорить передачу файлов. Для передачи больших файлов полезно знать о ходе выполнения операции. Вы можете использовать флаг -P , чтобы узнать о ходе передачи файла. С помощью Rsync вы также можете возобновить передачу файлов, если они прерваны. Наконец, команда verbose может помочь вам понять каждый шаг передачи файла.Для этого вы можете использовать флаг -v . Вы также можете использовать команду help с RSnsc, чтобы получить список всех параметров и флагов. rsync help Rsync упрощает весь процесс передачи файлов, предлагая надежный, универсальный и гибкий инструмент по сравнению с альтернативами, такими как SCP. RSync отлично подходит для операций обслуживания, резервного копирования и общих файловых операций между локальными и удаленными машинами. Я Маниш и пишу о кибербезопасности, искусственном интеллекте и DevOps. Если вам понравилась эта статья, вы можете найти мой блог здесь. Введение Rsync, или удаленная синхронизация, - это бесплатный инструмент командной строки, который позволяет передавать файлы и каталоги в локальные и удаленные места назначения. Rsync используется для зеркалирования, резервного копирования или переноса данных на другие серверы. Этот инструмент быстрый и эффективный, копирует только изменения из источника и предлагает варианты настройки. Следуйте этому руководству, чтобы узнать, как использовать rsync с 20 примеров команд для большинства случаев использования в Linux. Предварительные требования Синтаксис команды Для удаленной передачи данных необходимо указать адрес хоста, но об этом позже. Инструмент rsync имеет множество опций. Вы можете ввести Сюда входят: Rsync - это универсальный инструмент синхронизации, который можно настроить в соответствии с конкретными задачами.В этом руководстве мы будем использовать опции archive ( Обратитесь к примерам rsync ниже, чтобы охватить большую часть использования rsync. Примечание : Будьте осторожны при использовании завершающей косой черты в исходном пути при синхронизации каталогов. След играет важную роль. Если вы вводите завершающую косую черту в источнике, команда Чтобы скопировать один файл в другой каталог на локальном компьютере, введите полный путь к исходному файлу, за которым следует целевое назначение. Например: Команда передает образец .txt в каталог rsync . Если целевой каталог не существует, добавьте косую черту в конце, и rsync создаст его, как в нашем примере. Если вы хотите скопировать файл из текущего рабочего каталога, вы можете ввести имя файла, а не полный путь. Чтобы скопировать несколько файлов с помощью rsync, добавьте полные пути к исходным файлам: Этот метод следует использовать для небольшого количества файлов. Если список больше, вы можете обратиться к опции Чтобы скопировать каталог и его содержимое в другое место на вашем компьютере, используйте параметр В приведенном выше примере показано, как скопировать каталог Linux в каталог rsync . Обратите внимание, что мы не использовали завершающую косую черту после Linux . Следовательно, инструмент rsync создал каталог Linux и его содержимое внутри каталога rsync . Чтобы скопировать каталог / home / test / Desktop / Linux в каталог / home / test / Desktop / rsync на удаленном компьютере, необходимо указать IP-адрес места назначения. Добавьте IP-адрес и место назначения после исходного каталога. Не забудьте поставить двоеточие ( Команда выглядит так: Введите пароль для текущего пользователя, чтобы продолжить. Если вы хотите использовать другую учетную запись для удаленного подключения, укажите ее перед IP-адресом: Чтобы скопировать отдельный файл на удаленный хост, укажите полный путь к файлу и место назначения. Например: Подобно локальному копированию данных, укажите несколько файлов или несколько путей к каталогам, которые вы хотите скопировать на удаленный сервер.Используйте тот же синтаксис, что и при копировании одного файла или каталога. Например: Утилиту rsync можно указать с помощью опции Например, чтобы передать sample.txt с рабочего стола на рабочий стол удаленного компьютера: Rsync поддерживает передачу файлов с удаленного сервера на локальный компьютер. Чтобы получить каталог с сервера, укажите его IP-адрес перед источником. Например: Эта команда скопировала каталог DirM из 192.168.56.100 в / home / test / Desktop на локальном сервере. Чтобы скопировать определенный файл с удаленного хоста, введите полный путь к исходному файлу и место назначения на локальном компьютере. Например: Для передачи нескольких файлов или нескольких каталогов с удаленного сервера укажите пути в фигурных скобках после IP-адреса сервера.Разделите пути запятой. Например: То же самое и с файлами. Перечислите в фигурных скобках столько файлов, сколько вам нужно. При выполнении резервного копирования больших данных вам может потребоваться просмотреть процесс передачи. Добавьте флаг Например, для резервного копирования Dir1 на удаленный сервер и отображения прогресса введите: Используйте параметр Этот параметр указывает rsync удалить любой файл или каталог в месте назначения, если их нет в источнике. В некоторых случаях может потребоваться удалить исходные файлы после передачи. Например, вы можете перемещать еженедельную резервную копию на новый сервер. После завершения передачи исходные файлы на старом сервере больше не нужны. В этом случае используйте флаг Например, эта команда передает файл резервной копии weekly.zip , а затем удаляет его из источника: Rsync - мощный инструмент синхронизации. Поскольку этот инструмент позволяет копировать и удалять данные, мы советуем сначала выполнить пробный запуск, чтобы проверить, выполняет ли rsync то, что вы намеревались сделать. Параметр пробного прогона особенно полезен, когда вы хотите удалить файлы.Чтобы выполнить пробный запуск, используйте параметр Например: Результат выглядит так же, как и при фактической синхронизации файлов. Однако на этот раз данные не будут синхронизированы. Для подтверждения того, что произошла проверка, а не фактическая передача, внизу терминала отображается (СУХОЙ ЗАПУСК). Чтобы определить максимальный размер файла, который будет передавать rsync, используйте Например, чтобы передать файлы размером не более 500 КБ, используйте эту команду: Используйте Чтобы пропустить любой файл размером менее 10 КБ, выполните следующую команду: Если вы хотите определить предел пропускной способности при передаче данных между машинами, используйте Эта опция полезна, когда вы не хотите забивать пропускную способность вашей сети. Чтобы установить максимальную скорость передачи 50 КБ / с, введите: Мы также использовали параметр Вы можете использовать rsync для копирования только определенного типа файла. Для этого используйте звездочку ( Например, чтобы копировать только файлы .txt, введите: Эта команда Rsync позволяет передавать только структуру каталогов, если вам не нужны файлы в другом месте. Для этого добавьте Например, чтобы скопировать структуру каталога Linux в Documents , введите: Вы можете легко добавить дату к имени каталога, если хотите поставить отметку даты для ваших переводов. Добавьте Например: Если вы синхронизируете два каталога, rsync не копирует файл, если он существует в месте назначения. Иногда может случиться так, что вы изменяете файл в месте назначения и не хотите, чтобы rsync перезаписывал его. Чтобы избежать перезаписи измененных файлов назначения, используйте параметр Например: Когда вы начинаете передачу данных, вы можете использовать флаг Например: Пример выше показывает, что файл sample2rs.txt отсутствует в месте назначения. Возможные буквы в выводе: Заключение В этом руководстве приведены примеры 20 команд rsync .Если вы последуете этому руководству, вы сможете успешно использовать rsync для передачи файлов и каталогов как локально, так и в удаленные места. Просмотры сообщений: «rsync» - мощная команда в среде Linux. rsync означает удаленную синхронизацию. Обычно rsync используется для передачи файла с одного сервера (источника) на другой сервер (место назначения). rsync имеет много переключателей или опций для очень полезного управления командой. Здесь я объясняю переключатели команды rsync на примерах. Rsync действительно посмотрит и увидит, что в файле изменилось, и загрузит только ту часть файла, которая изменилась. В отличие от ftp и других решений для передачи данных, rsync не просто повторно загружает файл целиком. Общий синтаксис для Rsync: Переключатели rsync: 1, -v, –verbose Повышение уровня детализации. Пример: Я создал файл «rsync» в папке «/ root / Rsync /» для целей тестирования. 2, -r, –рекурсивный Рекурсия в каталоги. 3, -l, –ссылки Скопируйте символические ссылки как символические ссылки. 4, -p, –perms Сохранить разрешения. 5, -t, –times Сохранить время модификации. 6, -g, –группа Группа сохранения. 7, -о, –владелец владелец заповедника (только суперпользователь) 8, -D То же, что и –устройства –специальные. –устройства: сохраняют файлы устройств (только суперпользователь). 9, -H, –корпус Сохранить жесткие ссылки 10, -A, –acls Сохранить ACL (подразумевает –perms) 11, -X, –xattrs Сохранить расширенные атрибуты 12, -a, –архив Это очень важный переключатель rsync, потому что он может выполнять функции некоторых других комбинаций переключателей. Архивный режим; равно -rlptgoD (no -H, -A, -X) 13, -q, –тихий Подавлять сообщения, не связанные с ошибками. 14, Чтобы указать размер файла для синхронизации: –max-size = РАЗМЕР Не передавайте файлы размером больше SIZE Не передавайте файлы размером меньше SIZE . 15, –удалено Удалить посторонние файлы из каталогов назначения. 16, W, - целиком Копировать файлы целиком (без алгоритма дельта-xfer) 17, -u, –update Пропускать более новые файлы на ресивере.Это означает, что не перезаписывайте измененные файлы в месте назначения. 18, –прогресс Просмотр хода выполнения rsync во время передачи. 19, шаблон включения и исключения. –включить Паттерны заключаются в одинарные кавычки. Примеры: В приведенном выше примере файлы, начинающиеся с «c», включены в Rsync, а все остальные файлы исключены из операции Rsync. 20 -e: Rsync через оболочку (SSH) Синтаксис: Некоторые полезные комбинации переключателей и полезные примеры «Rsync»: Если у целевого сервера другой порт SSH, вам необходимо знать эту команду для подключения и файлов Rsync с этого сервера.Подробнее 1, Как синхронизировать два каталога на одной машине? Я создал два каталога (также несколько файлов внутри каждого каталога) в / root, чтобы проверить использование rsync. Пример: Где, 2, Сохраните следующий параметр при синхронизации файлов с помощью переключателя -a. См. Пример ниже: 3, Как Rsync файлы с удаленного сервера на локальный? Выход аналогичен SCP, синтаксис для выполнения того же действия вставлен ниже: Некоторые примеры: Синхронизировать каталог с удаленного на локальный Синхронизировать все файлы с удаленного на локальный 4, Как синхронизировать файлы с локального на удаленный сервер? Синтаксис: Примеры : [[защита электронной почты] ~] # rsync -avz --progress --bwlimit = 600 / home / pkumar / techi [защита электронной почты]: / opt
Пароль [защищенный адрес электронной почты]:
отправка добавочного списка файлов
techi /
techi / OpenStack-Networking.pdf
6 153 239 100% 910,02 кБ / с 0:00:06 (xfr # 1, to-chk = 6/8)
techi / httpd-2.4.6-88.el7.centos.x86_64.rpm
2,844028 100% 615,28 кБ / с 0:00:04 (xfr # 2, to-chk = 5/8)
techi / httpd-tools-2.4.6-88.el7.centos.x86_64.rpm
92,504 100% 507,51 КБ / с 0:00:00 (xfr # 3, to-chk = 4/8)
techi / pkumar-2.png
0100% 0,00 кБ / с 0:00:00 (xfr # 4, to-chk = 3/8)
techi / pkumar-3.png
0100% 0,00 кБ / с 0:00:00 (xfr # 5, to-chk = 2/8)
techi / pkumar.png
0100% 0,00 кБ / с 0:00:00 (xfr # 6, to-chk = 1/8)
techi / postfix-2.10.1-7.el7.x86_64.об / мин
2,558,136 100% 594,80 КБ / с 0:00:04 (xfr # 7, to-chk = 0/8)
отправлено 9 470 087 байт получено 153 байта 485 653,33 байта / сек
общий размер 11 647 907 ускорение 1,23
[[адрес электронной почты защищен] ~] #
Пример: 17) Просмотр разницы в файлах и каталогах между источником и местом назначения
[[защита электронной почты] ~] # rsync -avzi / home / pkumar / techi [защита электронной почты]: / opt
Пароль [защищенный адрес электронной почты]:
отправка добавочного списка файлов
.d..t ...... techi /
Rsync в Linux с примерами
rsync
- это быстрая и универсальная утилита командной строки для синхронизации файлов и каталогов между двумя местоположениями через удаленную оболочку или с / на удаленный демон Rsync.Он обеспечивает быструю инкрементную передачу файлов, передавая только различия между источником и местом назначения. scp
, SFTP
, и cp
команды. rsync
, на практических примерах и подробных объяснениях наиболее распространенных параметров rsync
. Установка Rsync #
rsync
предустановлена в большинстве дистрибутивов Linux и macOS.Если в вашей системе не установлен rsync
, вы можете легко установить его с помощью диспетчера пакетов вашего дистрибутива. Установить Rsync на Ubuntu и Debian #
sudo apt install rsync
Установить Rsync на CentOS и Fedora #
sudo yum install rsync
Rsync Command Syntax #
rsync
имеют следующий вид:
Локальный на локальный: rsync [ОПЦИЯ]... [SRC] ... DEST
От локального к удаленному: rsync [ОПЦИЯ] ... [SRC] ... [ПОЛЬЗОВАТЕЛЬ @] ХОЗЯИН: DEST
От удаленного к локальному: rsync [ОПЦИЯ] ... [ПОЛЬЗОВАТЕЛЬ @] ХОСТ: SRC ... [DEST]
ОПЦИЯ
- Опции rsync
. SRC
- Исходный каталог. DEST
- Каталог назначения. ПОЛЬЗОВАТЕЛЬ
- удаленное имя пользователя. HOST
- удаленное имя хоста или IP-адрес. rsync
предоставляет ряд параметров, управляющих поведением команды.Наиболее широко используются следующие варианты: -a
, --archive
, архивный режим, эквивалент -rlptgoD
. Этот параметр указывает rsync
рекурсивно синхронизировать каталоги, передавать специальные и блочные устройства, сохранять символические ссылки, время модификации, группы, владение и разрешения. -z
, - сжать
. Эта опция заставляет rsync
сжимать данные при их отправке на целевую машину. Используйте эту опцию, только если соединение с удаленным компьютером медленное. -P
, эквивалент - частичный --progress
. Когда используется эта опция, rsync
показывает индикатор выполнения во время передачи и сохраняет частично переданные файлы. Это полезно при передаче больших файлов по медленным или нестабильным сетевым соединениям. - удалить
. Когда используется этот параметр, rsync
удаляет посторонние файлы из места назначения. Это полезно для зеркалирования. -q
, - тихий
.Используйте эту опцию, если вы хотите подавить сообщения, не связанные с ошибками. -э
. Эта опция позволяет вам выбрать другую удаленную оболочку. По умолчанию rsync
настроен на использование ssh. Базовое использование Rsync #
rsync
- это копирование одного файла из одного в другое локальное расположение. Вот пример:
rsync -a /opt/filename.zip / tmp /
rsync -a /opt/filename.zip /tmp/newfilename.zip
rsync
при синхронизации каталогов. В приведенном ниже примере показано, как создать локальную резервную копию файлов веб-сайта:
rsync -a /var/www/domain.com/public_html/ / var / www / domain.com / public_html_backup /
rsync
создаст его. rsync
по-разному обрабатывает исходные каталоги с завершающей косой чертой (/
). Если исходный каталог имеет косую черту в конце, команда скопирует только содержимое каталога в целевой каталог. Если косая черта в конце опущена, rsync
копирует исходный каталог в целевой каталог. Использование
rsync
для синхронизации данных с / на удаленную машину # rsync
для удаленной передачи данных
, он должен быть установлен как на исходном, так и на конечном компьютере. Новые версии rsync
настроены на использование SSH в качестве удаленной оболочки по умолчанию.
rsync -a / opt / media / remote_user @ remote_host_or_ip: / opt / media /
на удаленную машину вам будет предложено ввести пароль пользователя.
rsync -a remote_user @ remote_host_or_ip: / opt / media / / opt / media /
-e
:
rsync -a -e "ssh -p 2322" / opt / media / remote_user @ remote_host_or_ip: / opt / media /
rsync
внутри экрана.
сеанс или использовать параметр -P
:
rsync -a -P remote_user @ remote_host_or_ip: / opt / media / / opt / media /
Исключить файлы и каталоги #
--exclude
и указать файлы и каталоги, которые вы хотите исключить, в командной строке.
, вам необходимо использовать их относительные пути к исходному местоположению. node_modules
и tmp
:
rsync -a --exclude = node_modules --exclude = tmp / src_directory / / dst_directory /
--exclude-from
и укажите файлы и каталоги, которые вы хотите исключить из файла.
rsync -a --exclude-from = '/ exclude-file.txt' / src_directory / / dst_directory /
Заключение #
страница. 10 практических примеров команды Rsync в Linux
Некоторые преимущества и особенности команды Rsync
Базовый синтаксис команды rsync
# параметры rsync источник назначения
Некоторые общие параметры, используемые с командами rsync
Установить Rsync в системе Linux
$ sudo apt-get install rsync [В Debian / Ubuntu и Mint]
$ pacman -S rsync [в Arch Linux]
$ emerge sys-apps / rsync [В Gentoo]
$ sudo dnf install rsync [в Fedora / CentOS / RHEL и Rocky Linux / AlmaLinux]
$ sudo zypper install rsync [В openSUSE]
1.Копирование / синхронизация файлов и каталогов локально
Копирование / синхронизация файла на локальном компьютере
[[электронная почта защищена]] # rsync -zvh backup.tar.gz / tmp / backups /
создан каталог / tmp / backups
backup.tar.gz
отправлено 224,54 Кбайт, получено 70 байт 449.21 Кбайт / сек
общий размер 224,40K, ускорение 1,00
Копирование / синхронизация каталога на локальном компьютере
[[электронная почта защищена]] # rsync -avzh / root / rpmpkgs / tmp / backups /
отправка добавочного списка файлов
rpmpkgs /
rpmpkgs / httpd-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm
rpmpkgs / mod_ssl-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm
rpmpkgs / nagios-4.4.6-4.el8.x86_64.rpm
rpmpkgs / nagios-plugins-2.3.3-5.el8.x86_64.rpm
отправлено 3,47 МБ получено 96 байтов 2,32 МБ / сек
общий размер 3,74 млн ускорение 1,08
2.Копирование / синхронизация файлов и каталогов на или с сервера
Копирование каталога с локального сервера на удаленный сервер
[[защита электронной почты]: ~] # rsync -avzh / root / rpmpkgs [защита электронной почты]: / root /
Подлинность хоста 192.168.0.141 (192.168.0.141) 'не может быть установлен.
Отпечаток ключа ED25519 - это SHA256: bh3tiWQn4S5o6qmZhmtXcBROV5TU5h5t2C42QDEMx1c.
Этот ключ не известен под другими именами
Вы уверены, что хотите продолжить подключение (да / нет / [отпечаток пальца])? да
Предупреждение: Постоянно добавлен 192.168.0.141 (ED25519) в список известных хостов.
Пароль [защищенный адрес электронной почты]:
отправка добавочного списка файлов
rpmpkgs /
rpmpkgs / httpd-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm
rpmpkgs / mod_ssl-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm
rpmpkgs / nagios-4.4.6-4.el8.x86_64.rpm
rpmpkgs / nagios-plugins-2.3.3-5.el8.x86_64.rpm
отправлено 3,74 МБ получено 96 байтов 439,88 КБ / сек
общий размер 3,74 млн ускорение 1,00
Копирование / синхронизация удаленного каталога с локальным компьютером
[[защита электронной почты]: ~] # rsync -avzh [защита электронной почты]: / root / rpmpkgs / tmp / myrpms
Пароль [защищенный адрес электронной почты]:
получение инкрементного списка файлов
создан каталог / tmp / myrpms
rpmpkgs /
rpmpkgs / httpd-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm
rpmpkgs / mod_ssl-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm
rpmpkgs / nagios-4.4.6-4.el8.x86_64.rpm
rpmpkgs / nagios-plugins-2.3.3-5.el8.x86_64.rpm
отправлено 104 байта получено 3,49M байта 997.68 Кбайт / сек
общий размер 3,74 млн ускорение 1,07
3. Rsync через SSH
Копирование файла с удаленного сервера на локальный сервер с помощью SSH
[[защита электронной почты]: ~] # rsync -avzhe ssh [защита электронной почты]: / root / anaconda-ks.cfg / tmp
Пароль [защищенный адрес электронной почты]:
получение инкрементного списка файлов
анаконда-кс.cfg
отправлено 43 байта получено 1,10 КБ 325,43 байта / сек
общий размер 1.90K, ускорение 1.67
Копирование файла с локального сервера на удаленный сервер с помощью SSH
[[защита электронной почты]: ~] # rsync -avzhe ssh backup.tar.gz [защита электронной почты]: / backups /
Пароль [защищенный адрес электронной почты]:
отправка добавочного списка файлов
созданный каталог / резервные копии
backup.tar.gz
отправлено 224,59 Кбайт получено 66 байтов 64,19 Кбайт / сек
общий размер 224.Ускорение 40K составляет 1,00
4. Показать прогресс при передаче данных с помощью rsync
[[защита электронной почты]: /] # rsync -avzhe ssh --progress / root / rpmpkgs [защита электронной почты]: / root / rpmpkgs
Пароль [защищенный адрес электронной почты]:
отправка добавочного списка файлов
rpmpkgs /
rpmpkgs / httpd-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm
1,47 млн 100% 31,80 МБ / с 0:00:00 (xfr # 1, to-chk = 3/5)
rpmpkgs / mod_ssl-2.4.37-40.module_el8.5.0 + 852 + 0aafc63b.x86_64.rpm
138,01 КБ 100% 2,69 МБ / с 0:00:00 (xfr # 2, to-chk = 2/5)
rpmpkgs / nagios-4.4.6-4.el8.x86_64.rpm
2,01 млн 100% 18,45 МБ / с 0:00:00 (xfr # 3, to-chk = 1/5)
rpmpkgs / nagios-plugins-2.3.3-5.el8.x86_64.rpm
120,48 КБ 100% 1,04 МБ / с 0:00:00 (xfr # 4, to-chk = 0/5)
отправлено 3.Получено 74 МБ байтов 96 байтов 1,50 МБ / с
общий размер 3,74 млн ускорение 1,00
5. Использование параметров –include и –exclude
[[защита электронной почты]: /] # rsync -avze ssh --include 'R *' --exclude '*' [защита электронной почты]: / var / lib / rpm / / root / rpm
Пароль [защищенный адрес электронной почты]:
получение инкрементного списка файлов
создан каталог / root / rpm
./
Требовать имя
отправлено 61 байт получено 273 074 байта 60 696,67 байт / сек
общий размер 761 856 ускорение 2,79
6. Использование опции –delete
[[электронная почта защищена]: ~] # cd / root / rpm /
[[электронная почта защищена]: ~ / об / мин] # touch test.txt
[[защита электронной почты]: ~ / rpm] # rsync -avz --delete [защита электронной почты]: / var / lib / rpm / / root / rpm /
Пароль [защищенный адрес электронной почты]:
получение инкрементного списка файлов
удаление теста.текст
./
.dbenv.lock
.rpm.lock
Базовые имена
Имя конфликта
Dirnames
Enhancename
Filetriggername
Группа
Installtid
Имя
Устаревшее имя
Пакеты
Providename
Sha1header
Sigmd5
Предложить имя
Дополнение
Трансфилет
Имя триггера
__db.001
__db.002
__db.003
отправлено 445 байт получено 18 543 954 байта 2472586,53 байта / сек
общий размер 71 151 616 ускорение 3,84
7. Установите максимальный размер файлов для передачи
[[защита электронной почты]: ~] # rsync -avzhe ssh --max-size = '200k' / var / lib / rpm / [защита электронной почты]: / root / tmprpm
Пароль [защищенный адрес электронной почты]:
отправка добавочного списка файлов
создан каталог / root / tmprpm
./
.dbenv.lock
.rpm.lock
Имя конфликта
Enhancename
Filetriggername
Группа
Installtid
Имя
Устаревшее имя
Рекомендовать имя
Требовать имя
Sha1header
Sigmd5
Предложить имя
Дополнение
Трансфилет
Имя триггера
__db.002
отправлено 129,52 Кбайт получено 396 байт 28,87 Кбайт / сек
общий размер 71,15M ускорение 547,66
8. Автоматически удалять исходные файлы после успешной передачи
[[электронная почта защищена]: ~] # rsync --remove-source-files -zvh backup.tar.gz [электронная почта защищена]: / tmp / backups /
Пароль [защищенный адрес электронной почты]:
backup.tar.gz
отправлено 795 байт получено 2,33 КБ 894,29 байт / сек
общий размер 267,30K ускорение 85,40
[[электронная почта защищена]: ~] # ls -l backup.tar.gz
ls: нет доступа к 'backup.tar.gz': нет такого файла или каталога
9.Выполните пробный запуск с rsync
[[защита электронной почты]: ~] # rsync --dry-run --remove-source-files -zvh backup.tar.gz [защита электронной почты]: / tmp / backups /
Пароль [защищенный адрес электронной почты]:
backup.tar.gz
отправлено 50 байт получено 19 байт 19,71 байт / сек
общий размер 267,30K, ускорение 3,873,97 (СУХОЙ ЗАПУСК)
10. Rsync устанавливает предел пропускной способности и передает файл
[[email protected]] # rsync --bwlimit = 100 -avzhe ssh / var / lib / rpm / [email protected]: / root / tmprpm /
Пароль [защищенный адрес электронной почты]:
отправка добавочного списка файлов
отправлено 324 байта получено 12 байтов 61,09 байт / сек
общий размер 38.08M ускорение 113347.05
[[электронная почта защищена]] # rsync -zvhW backup.tar /tmp/backups/backup.tar
backup.tar
отправлено 14,71 МБ получено 31 байт 3,27 МБ / сек
общий размер 16,18M ускорение 1,10
Как использовать rsync
Когда использовать
Как использовать
cd ~
rsync -avz - e ssh public_html [адрес электронной почты защищен]: ~ / backup
rsync -avz -e "ssh -p7822" public_html [электронная почта защищена]: ~ / backup
rsync -avz -e ssh [защита электронной почты]: ~ / public_html.
Дополнительная информация
RSync - параметры Rsync и как копировать файлы через SSH
Что такое RSync
Как работает RSync
rsync [параметры] источник [назначение]
rsync local_file_path user @ remote-host: remote_file_path
rsync user @ remote-host: remote_file_path local_file_path
Как использовать флаги в RSync
Рекурсивный
rsync -r user @ remote-host: remote_directory / local_directory
Archive
rsync -a user @ remote-host: remote_directory / local_directory
Сжатие
rsync -az user @ remote-host: remote_directory / local_directory
Progress
rsync -aP user @ remote-host: remote_directory / local_directory
Verbose
rsync -av user @ remote-host: remote_directory / local_directory
rsync --help
Заключение
Ссылки
20 полезных примеров в Linux
Синтаксис команды Rsync
rsync
изменяется в зависимости от использования инструмента.Мы рассмотрим все сценарии в следующих примерах. Синтаксис Rsync в простейшей форме выглядит так:
Параметры rsync НАЗНАЧЕНИЕ ИСТОЧНИКА
Параметры Rsync
rsync
в свой терминал и получить все подробности. Мы перечислим некоторые из наиболее распространенных параметров rsync. -r
Позволяет рекурсивно синхронизировать данные, но не сохраняет права собственности на пользователей и группы, разрешения, временные метки или символические ссылки. -a
Режим архива ведет себя как рекурсивный режим, но сохраняет все права доступа к файлам, символические ссылки, права собственности на файлы и т. Д. -z
Используется для сжатия данных во время переездов для экономии места. -b
Выполняет резервное копирование во время синхронизации данных. -h
Показывает числа на выходе в удобочитаемом формате. -n
Запуск всухую. Используется для тестирования перед фактической синхронизацией. -e
Указывает rsync использовать протокол SSH для удаленных передач. -progress
Отображает ход передачи во время синхронизации. -v
Подробный вывод. Отображает подробную информацию о переводе. -q
Используется для подавления вывода для команды и параметров rsync. Примеры команды Rsync
-a
) и verbose ( -v
) при необходимости. rsync
не создает исходную папку в месте назначения; он копирует только файлы каталога.Если вы не используете завершающую косую черту, rsync также создает исходный каталог внутри целевого каталога. 1. Копирование одного файла локально
rsync -v /home/test/Desktop/sample.txt / home / test / Desktop / rsync /
2. Копирование нескольких файлов локально
rsync -v / home / test / Desktop / sample.txt /home/test/Desktop/sample2rs.txt / home / test / Desktop / rsync
--exclude
. 3. Копирование каталога и всех подкаталогов локально (рекурсивное копирование файлов и каталогов)
-a
или -r
.Использовали архив вариант :
rsync -av / home / test / Desktop / Linux / home / test / Desktop / rsync
4. Скопируйте файл или каталог с локального на удаленный компьютер
:
) после IP-адреса удаленного хоста без пробелов перед местом назначения.
rsync -av / home / test / Desktop / Linux 192.168.56.100:/home/test/Desktop/rsync
rsync -a / home / test / Desktop / Linux jay @ 192.168.56.100: / home / test / Desktop / rsync
rsync -av /home/test/Desktop/sample_file.txt 192.168.56.100:/home/test/Desktop/rsync
5. Копирование нескольких файлов или каталогов с локального на удаленный компьютер
rsync -av / home / test / Desktop / Linux / / home / test / Music 192.168.56.100:/home/test/Desktop/rsync
6. Укажите протокол rsync для удаленных передач
-e
использовать определенный протокол для передачи файлов. Чтобы использовать Rsync через SSH для удаленной передачи файлов, добавьте -e ssh
к команде rsync
.
rsync -e ssh /home/test/Desktop/sample.txt 192.168.56.100:/home/test/Desktop
7. Копирование файла или каталога с удаленного компьютера на локальный компьютер
rsync -av 192.168.56.100: / home / test / Desktop / DirM / home / test / Desktop
rsync -v 192.168.56.100:/home/test/Desktop/testfile.txt / home / test / Рабочий стол
8. Копирование нескольких файлов или каталогов с локального на удаленный компьютер
rsync -av 192.168.56.100:{/home/test/Desktop/DirM,/home/test/Desktop/Dir1} / home / test / rsync
9. Показать ход выполнения rsync во время передачи данных
--progress
к команде rsync
, чтобы просмотреть объем переданных данных, скорость передачи и оставшееся время.
rsync -av --progress / home / test / Desktop / Dir1 192.168.56.100:/home/test/Desktop/rsync
10. Удалите несуществующий исходный файл или каталог из места назначения
--delete
, чтобы синхронизировать источник и цель.
rsync -av --delete / home / test / Desktop / Dir1 192.168.56.100:/home/test/Desktop/rsync
11. Удалить исходные файлы после передачи
--remove-source-files
, чтобы удалить указанный вами исходный файл.
rsync -v --remove-source-files /home/test/backup/weekly.zip 192.168.56.100:/home/test/Desktop/rsync/
12. Rsync Dry Run
--dry-run
и следуйте обычному синтаксису rsync.
rsync -av --dry-run --delete / home / test / Desktop / Dir1 192.168.56.100:/home/test/Desktop/rsync
13.Установить максимальный размер файла для передачи
--max-size = add_size
.
rsync -av --max-size = 500k / home / test / Desktop / Dir1 192.168.56.100:/home/test/Desktop/rsync/
14. Установите минимальный размер файла для передачи
--min-size = add_size
с rsync, если вы не хотите передавать файлы меньше указанного вами размера.Эта опция полезна, например, когда вы хотите пропустить небольшие файлы журнала или миниатюры.
rsync -av --min-size = 10k / home / test / Desktop / 192.168.56.100:/home/test/Desktop/rsync/
15. Установка предела пропускной способности rsync
--bwlimit = KB / s
.
rsync -av --bwlimit = 50 --progress / home / test / Desktop / Dir1 192.168.56.100:/home/test/Desktop/rsync/
--progress
, чтобы продемонстрировать использование --bwlimit
. 16. Копирование определенного типа файла
*
) вместо имени файла и добавьте расширение.
rsync -v /home/test/Documents/*.txt / home / test / Desktop / rsync /
rsync
передает все текстовые файлы из каталога Documents в каталог rsync на рабочем столе. 17. Копировать структуру каталогов, но пропускать файлы
-f "+ * /" -f "- *"
перед исходным каталогом.
rsync -av -f "+ * /" -f "- *" / home / test / Desktop / Linux / home / test / Documents
18. Добавить штамп даты в имя каталога
$ (дата +% Y-% m-% d)
к имени каталога назначения, который вы хотите создать. Эта опция полезна, когда вы хотите отслеживать, когда произошла передача, не открывая свойства каталога.
rsync -av / home / test / Desktop / Linux / home / test / Desktop / rsync $ (дата +% Y-% m-% d)
19. Не копировать исходный файл, если был изменен тот же конечный файл
-u
.
rsync -avu / home / test / Desktop / Linux / / home / test / Desktop / rsync
20. Покажите разницу между исходным и конечным файлами
-i
с rsync, чтобы проверить, есть ли разница между источником и местом назначения.
rsync -avi / home / test / Desktop / Linux / / home / test / Desktop / rsync
f
- означает файл d
- показывает, что целевой файл находится под вопросом t
- показывает, что метка времени изменилась s
- показывает размер поменял 20+ переключателей команды Rsync и общие примеры использования с примерами
16 019 # rsync [параметры] Источники назначения.
[электронная почта защищена] [~] # rsync -v / root / Rsync / rsync.
rsync
отправлено 65 байт получено 31 байт 192,00 байт / сек
общий размер 0, ускорение 0,00
–специальные: сохранить специальные файлы.
–min-size = SIZE
– исключить [[защита электронной почты] crybit] # rsync -avz --include 'c *' --exclude '*' / root / crybit / 109.200.11.67:/root/Rsinc101
Пароль [защищенный адрес электронной почты]:
stdin: это не tty
отправка добавочного списка файлов
cry1.док
cry2.doc
cry3.doc
cry4.doc
cry5.doc
отправлено 267 байт получено 107 байт 68,00 байт / сек
общий размер 0, ускорение 0,00
# rsync -avz -e Источник назначения ssh
/ корень / Rsync1 /
/ корень / Rsync2 /
[электронная почта защищена] [~] # rsync -zvr / root / Rsync1 / / root / Rsync2 /
отправка инкрементного списка файлов
rsync1.txt
rsync10.txt
rsync2.txt
rsync3.текст
......
......
отправлено 502 байта получено 202 байта 1408,00 байт / сек
общий размер 0, ускорение 0,00
-z - включить сжатие
-v verbose
-r указывает на рекурсивный r, l, p, t, g, o, D: детали переключателя упомянуты в разделе выше.
Рекурсивный режим, символические ссылки, разрешения, отметка времени, владелец и группа
[адрес электронной почты защищен] [~] # ll / root / Rsync1 / rsync10.текст
-rw-r - r-- 1 root root 0 17 февраля 07:40 /root/Rsync1/rsync10.txt
[электронная почта защищена] [~] # ll /root/Rsync2/rsync10.txt
-rw-r - r-- 1 root root 0 17 февраля 07:40 /root/Rsync2/rsync10.txt
# rsync -azv Удаленный IP-адрес: / путь / для / Sync / Путь / к / Sync
[[email protected] crybit] # rsync -azv MY.СЕРВЕР.IP: / корень / Rsync1 / корень / crybit /
[адрес электронной почты защищен] пароль:
stdin: это не tty
получение инкрементного списка файлов
Rsync1 /
Rsync1 / rsync1.txt
Rsync1 / rsync10.txt
Rsync1 / rsync2.txt
Rsync1 / rsync3.txt
.....
.....
отправлено 205 байт получено 527 байт 77,05 байт / сек
общий размер 0, ускорение 0,00
[[email protected] crybit] # rsync -azv 109.200.11.67: / корень / Rsync1 / * / корень / crybit /
[адрес электронной почты защищен] пароль:
stdin: это не tty
получение инкрементного списка файлов
rsync1.txt
rsync10.txt
rsync2.txt
rsync3.txt
...
...
отправлено 201 байт получено 499 байт 93,33 байт / сек
общий размер 0, ускорение 0,00
# rsync -azv / local-path / для / Sync / Remote-IP: / path / to / Sync
[[электронная почта] crybit] # rsync -avz / root / crybit / 109.200.11.67: / корень / Rsinc101
[адрес электронной почты защищен] пароль:
stdin: это не tty
отправка добавочного списка файлов
создан каталог / root / Rsinc101
./
rsync1.txt
rsync10.txt
rsync2.txt
rsync3.txt
...
...
отправлено 1028 байт получено 399 байт 190,27 байт / сек
общий размер 0, ускорение 0,00
Примечание 1: В примерах 3 и 4 вы можете использовать формат [email protected]: / path, если у вас есть только права пользователя на сервере.