Added scripts to backup system with borg
New file |
| | |
| | | [Unit] |
| | | Description=Backup system with Borg |
| | | |
| | | [Service] |
| | | Type=simple |
| | | ExecStart=/root/system_backup.sh |
| | | |
| | | [Install] |
| | | RequiredBy=multi-user.target |
New file |
| | |
| | | #!/bin/sh |
| | | |
| | | if [ $EUID != 0 ]; then |
| | | sudo "$0" "$@" |
| | | exit $? |
| | | fi |
| | | |
| | | export BORG_REPO=/backup/borg |
| | | |
| | | # add --list to view files as they're added to the backup |
| | | borg create \ |
| | | --verbose \ |
| | | --stats \ |
| | | --compression zstd,22 \ |
| | | --one-file-system \ |
| | | --exclude-caches \ |
| | | --exclude /var/cache \ |
| | | \ |
| | | ::"$(date +%F)" \ |
| | | / |
| | | |
| | | BACKUP_EXIT=$? |
| | | |
| | | borg prune \ |
| | | --list \ |
| | | --keep-daily 7 \ |
| | | --keep-monthly 2 |
| | | |
| | | PRUNE_EXIT=$? |
| | | |
| | | GLOBAL_EXIT=$(( BACKUP_EXIT > PRUNE_EXIT ? BACKUP_EXIT : PRUNE_EXIT )) |
| | | |
| | | if [ $GLOBAL_EXIT -eq 0 ]; then |
| | | echo "Backup and Prune finished with successfully" |
| | | elif [ $GLOBAL_EXIT -eq 1 ]; then |
| | | echo "Backup and/or Prune finshed with warnings" |
| | | else |
| | | echo "Backup and/or Prune finished with errors" |
| | | fi |
| | | |
| | | exit $GLOBAL_EXIT |
New file |
| | |
| | | [Unit] |
| | | Description=System backup with Borg Timer |
| | | |
| | | [Timer] |
| | | OnCalendar=Daily |
| | | Persistent=true |
| | | |
| | | [Install] |
| | | WantedBy=timers.target |