rsync — это мощный инструмент для копирования и синхронизации данных на Linux, который особенно полезен для резервного копирования. Его отличительная черта — передача только изменённых частей файлов, что делает процесс очень быстрым.
🕹 Основные команды rsync:
1. Базовая синхронизация:
rsync -av /источник/ /назначение/-a (archive): сохраняет структуру каталогов, атрибуты файлов и символьные ссылки.
-v (verbose): выводит информацию о копируемых файлах.
2. Сжатие передаваемых данных:
rsync -az /источник/ /назначение/-z (compress): сжимает данные, уменьшая объём передачи.
3. Копирование через SSH:
rsync -avz -e ssh /источник/ user@server:/назначение/-e ssh: указывает использование SSH для безопасной передачи данных.
4. Удаление файлов в папке назначения, которые отсутствуют в источнике:
rsync -av --delete /источник/ /назначение/
Примеры сценариев использования
1. Резервное копирование локального каталога:
rsync -av --progress /home/user/documents/ /backup/documents/
--progress: отображает прогресс копирования.2. Синхронизация с удалённым сервером:
rsync -avz /data/ user@remote:/backup/data/
3. Исключение определённых файлов или папок:
rsync -av --exclude='*.tmp' --exclude='cache/' /источник/ /назначение/
--exclude: исключает файлы или каталоги, соответствующие шаблону.Автоматизация с помощью Cron
Для регулярного выполнения резервного копирования используйте планировщик заданий cron.
1. Откройте файл cron:
crontab -e2. Добавьте задание (например, ежедневное копирование в 2:00 ночи):
0 2 * * * rsync -avz /data/ user@server:/backup/data/
Полезные флаги и опции
--progress — отображает статус копирования. --dry-run — симулирует выполнение команды без фактического копирования. --exclude — исключает определённые файлы или папки. --delete — удаляет файлы в папке назначения, которые отсутствуют в источнике. --bwlimit=KBytes — ограничивает скорость передачи данных. ❗️ Каковы преимущества rsync: эффективное использование сетевых и дисковых ресурсов, гибкость благодаря множеству настроек, cовместимость с SSH для безопасной передачи данных.
#rsync | 😏 @iscode