rsync копирует только изменившиеся блоки — быстрее cp и экономит трафик по SSH.
# базовая синхронизация директории
rsync -av /src/ /dst/
# предварительный просмотр без изменений
rsync -av --dry-run /src/ /dst/
# исключить временные файлы и кэш
rsync -av --exclude='*.tmp' --exclude='.cache/' /src/ /dst/
# по SSH с прогресс-баром
rsync -avz --progress user@remote:/data/ /backup/data/
Скрипт инкрементального бэкапа с датой:
#!/bin/bash
SRC=/var/www/
DST=/backup/www/
DATE=$(date +%F)
rsync -av --link-dest="$DST/latest" \
--exclude='*.log' \
"$SRC" "$DST/$DATE/"
ln -sfn "$DST/$DATE" "$DST/latest"
--link-dest создаёт жёсткие ссылки на неизменившиеся файлы — каждый снапшот занимает только дельту. Удалять старые снапшоты безопасно: файлы не пропадают, пока на них есть хотя бы одна ссылка.
#linux #bash #backup #sysadmin
