hd-backup/backup.sh

60 lines
1.2 KiB
Bash
Executable File

#!/bin/ash
echo "Start backup."
# Create backup file name.
TMP_TARGET=/mnt/backups/backup-$(hostname)-$(date +'%Y-%m-%d-%H-%M-%S').tar
echo $TMP_TARGET
#
# Samba
#
echo "Samba"
echo "Create NTACL file."
cd /var/lib/samba
find ./sysvol -exec ash -c 'TMP=$(samba-tool ntacl get "{}" --as-sddl); echo "samba-tool ntacl set \"$TMP\" \"{}\""' \; > NTACL
echo "Create tarball."
cd /
tar -cf $TMP_TARGET.1 \
etc/samba etc/bind \
var/lib/samba/private var/lib/samba/sysvol var/lib/samba/NTACL var/lib/samba/bind-dns \
var/lib/bind \
var/lib/ldap-account-manager
rm var/lib/samba/NTACL
#
# Kopano
#
echo "Kopano"
echo "Create tarball"
cd /tmp
tar -cf $TMP_TARGET.2 \
kopano/var/lib/kopano/attachments \
kopano/var/lib/mysql
#
# Gitea
#
echo "Gitea"
echo "Create tarball"
cd /tmp
tar -cf $TMP_TARGET.3 \
gitea/data \
gitea/var/lib/mysql
#
# merge tarball.
#
echo -n "Merging "
echo -n "."; head -c -$((512*2)) $TMP_TARGET.1 > $TMP_TARGET
echo -n "."; head -c -$((512*2)) $TMP_TARGET.2 >> $TMP_TARGET
echo -n "."; head -c -$((512*2)) $TMP_TARGET.3 >> $TMP_TARGET
rm $TMP_TARGET.1 $TMP_TARGET.2 $TMP_TARGET.3
echo "Done."
echo "Archiving."
gzip $TMP_TARGET
# Finish.
echo "Backup completed."