OpenWrt Backup Script with Exclusions Specified

:!: This script will generate a similar backup archive file to the one we can download using luci web interface. So, you can use it for restoration as well.

:!: The only purpose of using this script is if you don't want specific files to be included in your backup archive file.

backup-files-include
This file will be generated by script automatically using "sysupgrade --list-backup" command.
backup-files-exclude
.keep*
.placeholder*
etc/opkg/keys/*
backup.sh
#!/bin/sh
 
backdir=/root/backup/
backfile=backup-$(uci get system.@system[0].hostname)
backinclude=/root/scripts/backup-files-include
backexclude=/root/scripts/backup-files-exclude
 
# tar backup with gzip and checksum generation
sysupgrade --list-backup > $backinclude
tar c -v -T $backinclude -X $backexclude -f - | gzip > $backdir/$backfile.tar.gz
echo "$(sha256sum $backdir/$backfile.tar.gz | cut -d ' ' -f1)  $backfile.tar.gz" > $backdir/$backfile.tar.gz.sha256sum