Команда rsync в Linux Bash

Команда rsync используется для эффективной синхронизации и копирования файлов и каталогов как локально, так и по сети. Она оптимизирует передачу данных, копируя только изменённые части файлов.

Основной синтаксис

rsync [опции] <источник> <назначение>

Примеры:

rsync file.txt /backup/
rsync -avz user@remote:/var/www /local/backup/

Ключевые опции

Часто используемые опции rsync

Опция

Описание

-a

Архивный режим (сохраняет структуру, права, владельцев и симлинки).

-v

Подробный вывод.

-z

Сжатие данных при передаче.

-P

Показывает прогресс и позволяет продолжить прерванную передачу.

--delete

Удаляет на стороне назначения файлы, отсутствующие в источнике.

--dry-run

Тестовый запуск без копирования.

Примеры использования

  1. Копирование файла на другой каталог:

    rsync file.txt /home/user/backup/
    
  2. Рекурсивное копирование папки:

    rsync -av my_project/ /mnt/usb/
    
  3. Синхронизация с удалённым сервером:

    rsync -avz user@server:/etc/nginx/ /backup/nginx/
    
  4. Удаление лишнего с назначения:

    rsync -av --delete source/ destination/
    
  5. Проверка без выполнения:

    rsync -av --dry-run source/ destination/
    

Советы

  • Используйте --progress для отображения хода копирования.

  • rsync идеален для резервного копирования и обновления больших каталогов.

  • Можно использовать с cron для автоматизации задач.

Note

Команда rsync копирует только изменённые файлы, что значительно экономит время и трафик.

Warning

Будьте осторожны с --delete — убедитесь, что источник и путь назначения указаны верно.