Использование rsync для синхронизации файлов
rsync
— это мощный инструмент для синхронизации и передачи файлов между локальной и удаленной системами. Он позволяет эффективно копировать файлы и каталоги, используя алгоритм, который минимизирует объем передаваемых данных.
Установка rsync
На большинстве Linux-дистрибутивов rsync
уже установлен. Если он отсутствует, вы можете установить его с помощью пакетного менеджера:
Для Debian/Ubuntu
1 |
|
Для CentOS/Fedora
1 |
|
Основной синтаксис
1 |
|
Примеры использования
1. Перекачивание файлов с удаленного сервера на локальную машину
Чтобы скопировать файл с удаленного сервера на вашу локальную машину, используйте следующую команду:
1 |
|
username
— ваше имя пользователя на удаленном сервере.remote_host
— IP-адрес или доменное имя удаленного сервера./path/to/remote/file
— путь к файлу на удаленном сервере./path/to/local/directory
— путь к директории на вашей локальной машине, куда будет скопирован файл.
2. Перекачивание файлов с локальной машины на удаленный сервер
Чтобы скопировать файл с локальной машины на удаленный сервер, используйте:
1 |
|
/path/to/local/file
— путь к файлу на вашей локальной машине./path/to/remote/directory
— путь к директории на удаленном сервере, куда будет скопирован файл.
3. Синхронизация каталогов
Для синхронизации целого каталога используйте флаг -r
(рекурсивно):
1 |
|
Обратите внимание на слэш в конце пути к локальному каталогу. Он указывает на то, что содержимое каталога должно быть скопировано, а не сам каталог.
4. Исключение файлов
Если вы хотите исключить определенные файлы или директории, используйте параметр --exclude
:
1 |
|
5. Синхронизация с удаленного сервера на локальную машину с использованием SSH
По умолчанию rsync
использует SSH для передачи данных. Вы можете явно указать это с помощью параметра -e
:
1 |
|
Описание параметров
-a
— архивный режим; включает в себя рекурсивное копирование и сохраняет символические ссылки, права доступа, временные метки и т. д.-v
— выводит подробную информацию о процессе копирования (verbose).-z
— сжимает данные во время передачи, что может ускорить процесс при медленном соединении.-r
— рекурсивное копирование каталогов.--exclude
— исключает указанные файлы или директории из копирования.-e
— указывает удаленный shell, используемый для соединения (например, SSH).