Обзор
`rsync-progress` — это не отдельная команда, а общее название функции, отображающей ход выполнения передачи через опцию `--progress` мощного инструмента синхронизации файлов `rsync`. Использование этой функции позволяет в реальном времени отслеживать текущее состояние во время передачи файлов, что полезно при синхронизации больших файлов или множества файлов.
Основные характеристики
Основные сведения, получаемые с помощью опции `--progress` команды `rsync`, следующие:
- Прогресс передачи в реальном времени (в процентах)
- Имя текущего передаваемого файла
- Скорость передачи (например, МБ/с)
- Оставшееся время передачи
Основные опции
`rsync-progress` использует опции команды `rsync`. Ниже приведены часто используемые опции `rsync` для отображения прогресса:
Отображение прогресса и вывод
Действия синхронизации
Сгенерированная команда:
Комбинируйте команды.
Описание:
`rsync-progress` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Установка
`rsync-progress` не является командой, требующей отдельной установки; это функция команды `rsync`. `rsync` предустановлен в большинстве дистрибутивов Linux, но если он отсутствует, вы можете установить его с помощью следующей команды:
Debian/Ubuntu
sudo apt update && sudo apt install rsync
Установка `rsync` с использованием пакетного менеджера APT.
CentOS/RHEL
sudo yum install rsync
Установка `rsync` с использованием пакетного менеджера YUM.
Fedora
sudo dnf install rsync
Установка `rsync` с использованием пакетного менеджера DNF.
Примеры использования
Ниже приведены различные примеры использования команды `rsync` с опцией `--progress` для проверки хода выполнения синхронизации файлов:
Синхронизация локального каталога и отображение прогресса
rsync -avh --progress source_dir/ destination_dir/
Синхронизирует содержимое `source_dir` в текущем каталоге с `destination_dir`, отображая ход выполнения.
Синхронизация файлов с удаленным сервером и отображение прогресса
rsync -avz --progress local_files/ user@remote_host:/path/to/remote_dir/
Синхронизирует локальный каталог `local_files/` с `user@remote_host:/path/to/remote_dir/` на удаленном сервере, отображая ход выполнения.
Создание псевдонима (alias) `rsync-progress`
alias rsync-progress='rsync -avh --progress'
Вы можете создать псевдоним `rsync-progress`, включающий часто используемые опции `rsync`, для удобства использования. Этот псевдоним действителен только в текущем сеансе оболочки; для постоянного использования добавьте его в файл конфигурации оболочки (например, `~/.bashrc`, `~/.zshrc`).
Синхронизация локальных данных с использованием псевдонима
rsync-progress /path/to/source/ /path/to/destination/
Синхронизирует локальные каталоги с использованием созданного выше псевдонима `rsync-progress`.
Симуляция операции удаления и отображение прогресса
rsync -avh --progress --delete --dry-run source_dir/ destination_dir/
Проверяет, какие файлы будут удалены при использовании опции `--delete`, с помощью `--dry-run`, без фактического удаления файлов.
Советы и примечания
Полезные советы и моменты, на которые следует обратить внимание при использовании `rsync` и опции `--progress`.
Эффективные комбинации опций
Опция `--progress` в сочетании с `-v` (verbose) позволяет получить больше информации, а в сочетании с `-h` (human-readable) — легко понять размер файлов. Опция `-a` (archive) рекомендуется для большинства операций синхронизации.
- `rsync -avh --progress source/ dest/` (наиболее распространенная и полезная комбинация)
- `rsync -avz --progress source/ user@host:dest/` (добавление сжатия при удаленной передаче)
Использование `--dry-run`
Особенно при использовании разрушительных опций, таких как `--delete`, всегда рекомендуется сначала использовать опцию `--dry-run`, чтобы заранее проверить, какие изменения будут внесены. Это очень важно для предотвращения непреднамеренной потери данных.
Учет сетевой среды
При передаче на удаленный сервер опция `--compress` (`-z`) может сэкономить полосу пропускания сети, но увеличить загрузку процессора. Если скорость сети достаточно высока, сжатие может фактически увеличить время передачи, поэтому его следует использовать соответствующим образом в зависимости от среды.
Внимание к слешу (`/`) в путях источника/назначения
Если вы добавите слеш в конце пути источника (`source_dir/`), *содержимое* `source_dir` будет скопировано в назначение. Если вы не добавите слеш (`source_dir`), сам `source_dir` будет создан внутри каталога назначения. Эта разница очень важна, поэтому будьте внимательны.