Использование 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).