Bem, eu uso o seguinte script para o meu backup:
#! /bin/bash
# Gets date of most recent backup.
newestfile=$(cd /home/<USERNAME>/.Backups && find . -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -f2- -d" ")
budate='echo $newestfile| cut -c10-19'
# Gets current date
cdate=$(date --iso)
# If the cureent date is the same as the date of the most recent backup, don't run the backup, just give a notification that says it has already been done today.
if [ $cdate = $budate ]; then
echo "Backup Complete"
notify-send -i /home/<USERNAME>/Pictures/Logos/safe.png "Backup Status" "Already started/finished backup for today."
# If the dates are different, start the backup.
else
echo "Starting backup"
notify-send -i /home/<USERNAME>/Pictures/Logos/safe.png "Backup Status" "Starting backup for today."
# Compresses the files into .tar.gz format
tar -cvpzf /home/<USERNAME>/.Backups/backup-$(date +%Y-%m-%d-%H:%M).tar.gz "/home/<USERNAME>/folder/to/back/up" --exclude=.Backups && notify-send --expire-time=60000 -i /home/tim/Pictures/Home/Logos/safe.png 'Backup Status' 'Finished backup for today.'
fi
Isso salvará um arquivo de backup com a seguinte aparência:
backup-2014-07-26-13:13.tar.gz
Na pasta oculta /home/<USERNAME>/.Backups
O arquivo safe.png que ele usou para as notificações pode ser baixado aqui .
-
Salve o script em
/home/<USERNAME>/Scripts
asbackup.sh
-
Execute os seguintes comandos:
chmod +x Scripts/backup.sh mkdir .Backups touch .Backups/backup-2000-01-01-00:00.tar.gz
-
Em seguida, adicione o comando
Scripts/./backup.sh
ao início nos aplicativos de login. Mesmo se você fizer login mais de uma vez em um dia, você só receberá 1 backup.OR
Você também pode usar o cron para executar o script regularmente. Edite-o usando
crontab -e
e adicione essa linha ao final:0 15 * * * bash /path/to/script/backup.sh