Backup automático da pasta

2

Eu tenho uma pasta específica na minha caixa Linux que eu gostaria de ter feito um backup completo e ser capaz de "voltar no tempo" em um arquivo e ver todas as revisões anteriores.

Para adicionar complicações, esta pasta é compartilhada (com as ferramentas de compartilhamento embutidas) e é acessada e gravada por uma máquina Windows. Por esse motivo, gostaria que o backup fosse gravado em um local onde a máquina do Windows não tem acesso.

Como posso configurar isso?

    
por Cheetah 28.07.2014 / 14:19

2 respostas

5

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 .

  1. Salve o script em /home/<USERNAME>/Scripts as backup.sh

  2. Execute os seguintes comandos:

    chmod +x Scripts/backup.sh
    mkdir .Backups
    touch .Backups/backup-2000-01-01-00:00.tar.gz
  3. 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
    
por Tim 28.07.2014 / 14:34
0

A solução que escolhi no final foi algo chamado "Back In Time". Defino o intervalo de backup para 5 minutos e ele faz o backup de minhas pastas específicas para outro local e permite que eu volte pelos instantâneos necessários.

link

    
por Cheetah 31.07.2014 / 10:48