Фон
Я хотел бы использовать Borg Backup в качестве решения для резервного копирования моего сервера Ubuntu. Они предлагают очень удобный сценарий sh, который, по их словам, можно просто запустить как работу cron, но он не работает для меня.
проблема
Как автоматизировать резервное копирование Borg? Если лучший способ использовать cron, то что не так с моей имплементацией?
Данные
Корень Crontab:
# 5 2 * * * sh /home/***/Scripts/borgBackup_run.sh >/dev/null # Back up the root partition daily (2:05a)
* * * * * sh /home/***/Scripts/borgBackup_run.sh >/dev/null # Test the script
borgBackup_run.sh:
Изменено с оригинала, чтобы быть очень голым:
#!/bin/sh
echo 'Starting backup now...' >>
/home/***/Logs/borgBackup_create.log
#/usr/bin/borg create --verbose --filter AME --list --stats --show-rc --compression lz4 --exclude-caches --one-file-system --exclude-from ~/Scripts/borgBackup_exclude.txt /mnt/RootBackup/borg::'{hostname}-{now:%Y-%m-%d}' /
/usr/bin/borg create /mnt/RootBackup/borg::cronTest /home/***/Logs/ # Backup a small folder as a test
echo 'Done.' >> /home/***/Logs/borgBackup_create.log
"ls -l ~/Scripts/borgBackup_run.sh"
-rwxr-xr-x 1 root root 455 Sep 27 12:34 Scripts/borgBackup_run.sh
Заметки:
Когда borgBackup_run.sh
запускается из командной строки, например: sudo Scripts/borgBackup_run.sh
, скрипт отлично работает, создавая новый архив в /mnt/RootBackup/borg
.
Кроме того, через каждую минуту (когда запускается cronjob) в файле .log по адресу /home/***/Logs/borgBackup_create.log
показываются « Starting backup now...
и « Done.
, указывая, что скрипт прошел весь путь, но по какой-то причине borg не работал.
Я попытался удалить sh
из файла crontab, используя вместо этого bash
, и изменив interobang на #!/bin/bash
вместо #!/bin/sh
. Я также попытался обернуть строку /user/bin/borg create ...
в borgBackup_run.sh
в bash -c "..."
.
Любая помощь будет принята с благодарностью!