31 lines
716 B
Bash
Executable File
31 lines
716 B
Bash
Executable File
#!/bin/sh -e
|
|
|
|
BACKUP_SERVER="${BACKUP_SERVER-dd-backups@backup.digitaldemocratic.net}"
|
|
BORG_PASSCOMMAND="${BORG_PASSCOMMAND-cat $HOME/.borg-passphrase}"
|
|
|
|
wait_backup(){
|
|
if ! [ -f /home/$1/backup_date ]
|
|
then
|
|
exit
|
|
fi
|
|
current_date="$(date +"%Y-%m-%d")"
|
|
while ! [ "$current_date" = "$(cut -b1-10 /home/$1/backup_date)" ]
|
|
do
|
|
sleep 60
|
|
if [ "$current_date" != "$(date +"%Y-%m-%d")" ]
|
|
then
|
|
echo "No backup for $1 at $current_date" >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
export BORG_PASSCOMMAND
|
|
borg create ssh://$BACKUP_SERVER/~/$1.borg::$(cat /home/$1/backup_date) /home/$1
|
|
borg prune -d7 -w4 -m12 -y5 ssh://$BACKUP_SERVER/~/$1.borg
|
|
}
|
|
|
|
|
|
for item in $(ls /home)
|
|
do
|
|
wait_backup $item &
|
|
done
|