Скрипт следует положить в корень того диска или каталога, куда следует делать бэкапы.
$ 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/