rsync – инкрементный бэкап

Скрипт следует положить в корень того диска или каталога, куда следует делать бэкапы.

$ cat /home/backup.sh

#!/bin/bash
set -o nounset -o errexit
cd $(dirname "$0")
date=$(date --iso-8601=seconds)
test -L latest || ln -s "$date" latest
rsync --delete-excluded --prune-empty-dirs --archive -F --link-dest=../latest "$@" "./$date"
rm latest
ln -s "$date" latest

Запускать с указанием единственного аргумента: каталога с исходными файлами. Например, так.

/home/backup/backup.sh /home/share

Скрипт для вызова создания бэкапа по крону (необязательно, можно задать прямо в кроне):

$ cat /home/user/bin/r-backup_share.sh

#!/bin/sh
/home/backup/backup.sh /home/share

Сам крон (запуск – в 8, 13 и 18 часов ежедневно):

0 8,13,18 * * * /home/user/bin/r-backup_share.sh

После нескольких запусков получается такая структура каталога:

2019-01-05T08:00:00+0200
2019-01-05T13:00:00+0200
2019-01-05T18:00:00+0200
latest -> 2019-01-05T18:00:00+0200

При этом latest указывает на самый последний бэкап.

https://www.alexeykopytko.com/2017/rsync-howto/
http://yakim.org.ua/articles/servers/22-rsync.html
https://habr.com/post/51419/

image_pdfimage_print

Leave a Reply

Your email address will not be published. Required fields are marked *