Знание должно быть доступно!

Путь /ОС/Linux

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

Основные параметры

  • -a — архивный режим, который включает рекурсивное копирование и сохранение всех метаданных файлов (права доступа, временные метки и т. д.).
  • -v — включение подробного вывода для мониторинга процесса.
  • -z — сжатие данных при передаче.
  • --no-whole-file — предотвращает использование кеширования, заставляя rsync передавать только изменения в файлах (это может быть полезно для больших файлов).
  • --progress — отображение прогресса передачи.

Команда

rsync -avz --no-whole-file --progress web user@server:/home/user/dir

Что делает команда?

  1. Копирование из папки web: Все файлы и папки из локальной директории web будут переданы на удаленный сервер.
  2. Обязательное существование папки: Целевая директория /home/user/dir на сервере должна существовать. Если она не существует, команда завершится с ошибкой.
  3. Использование сжатия: Опция -z сжимает данные, что может быть полезно при передаче через медленные каналы.
  4. Подробный вывод: Благодаря флагу -v, вы будете видеть подробности о каждом копируемом файле.
  5. Отсутствие кеширования: Параметр --no-whole-file делает копирование более эффективным для больших файлов, передавая только измененные части.

Как убедиться, что папка существует?

Перед тем как запустить команду, убедитесь, что целевая директория существует на сервере. Например, можно проверить с помощью:

ssh user@server "test -d /home/user/dir || mkdir -p /home/user/dir"

Это создаст директорию, если она отсутствует, или ничего не сделает, если папка уже существует.

Преимущества использования rsync с данными параметрами:

  • Экономия времени при копировании больших файлов, так как передаются только изменения.
  • Гибкость — можно комбинировать с другими опциями для более точного контроля.
  • Удобство — можно видеть прогресс и отслеживать скорость передачи данных.

Заключение

Используя rsync с параметрами -avz --no-whole-file --progress, вы получаете эффективный способ синхронизации файлов с сервера на локальную машину или наоборот, при этом избегая кеширования и имея точный контроль над процессом передачи.