Fai un backup da unix box


0

Ho bisogno di qualche tipo di software (Debian) per creare backup. Generalmente hanno poche cartelle, con file ~ 10k, dimensioni zip totali ~ 5 GB. Vuoi creare 7 backup max. Ad esempio, cancella quello più vecchio ogni giorno.

vale a dire bisogno di una cartella con 7 yyyy-mm-dd.tar.gz file all'interno con gli ultimi archivi. Sono sicuro che esistano alcuni tipi di software di console standard per automatizzare questo?


1
OT: chi ha inventato la parola "soft"? Mi sembra assurdo che così tanti utenti dicano "ho un debole" o "ho bisogno di un morbido". Hai bisogno di un programma o di un'applicazione. Non è una cosa che non esiste e ha strane connotazioni
sehe

1
+1 @sehe, sembra persino orribile. @ softm, potresti voler dare un'occhiata rdiffbackup, suo documentazione e pagine di esempio sono veramente utili È così facile creare qualcosa di personalizzato e usarlo insieme a cron.
Ivan c00kiemon5ter V Kanak

Risposte:


3

Come dici tu, ci sono molti software standard per farlo. Per il momento sto usando uno script di shell costruito autonomamente. In futuro lo migrerò in Perl per segnalare il successo e gli insuccessi in un dashboard. Ho già implementato un concetto simile per i backup MySQL di sei server, aggiornano lo stato in Amazon SimpleDB e ho un dashboard per controllare lo stato.

Ecco il mio script:

#!/bin/sh

HOSTNAME=MYHOSTNAME                               # name of this computer
DIRECTORIES="/var/www /etc/ /var/backup/database" # directories to backup
BACKUPDIR=/mnt/backup                             # where to store the backups
TIMEDIR=/mnt/backup/last-full                     # where to store time of full backup
TAR=/bin/tar                                      # name and location of tar

PATH=/usr/local/bin:/usr/bin:/bin
DOW=`date +%a`                          # Day of the week e.g. Mon
DOM=`date +%d`                          # Date of the Month e.g. 27
DM=`date +%d%b%Y`                       # Date and Month e.g. 27Sep2010

# On the 6 of the month a permanent full backup is made
# Every Sunday a full backup is made - overwriting last Sundays backup
# The rest of the time an incremental backup is made. Each incremental
# backup overwrites last week incremental backup of the same name.
#
# if NEWER = "", then tar backs up all files in the directories
# otherwise it backs up files newer than the NEWER date. NEWER
# gets its date from the file written every Sunday.

# Monthly full backup
if [ $DOM = "06" ]; then
    NEWER=""
    $TAR $NEWER -cf $BACKUPDIR/$HOSTNAME-$DM.tar $DIRECTORIES
fi

# Weekly full backup
if [ $DOW = "Sun" ]; then
    NEWER=""
    NOW=`date +%d-%b`

    # Update full backup date
    echo $NOW > $TIMEDIR/$HOSTNAME-full-date
    $TAR $NEWER -cf $BACKUPDIR/$HOSTNAME-$DOW.tar $DIRECTORIES

# Make incremental backup - overwrite last weeks
else

    # Get date of last full backup
    NEWER="--newer `cat $TIMEDIR/$HOSTNAME-full-date`"
    $TAR $NEWER -cf $BACKUPDIR/$HOSTNAME-$DOW.tar $DIRECTORIES
fi

Quindi il tuo mai ripulire vecchi backup?

Non è una mia responsabilità, perché sono inviati a un altro server e archiviati da un altro sysadm. In ogni caso un modo semplice per conservare solo 7 copie è utilizzare il giorno della settimana solo nel nome del file. Come puoi notare dal mio script, il backup completo mensile utilizza la data completa, mentre tutti gli altri backup utilizzano solo il giorno della settimana, quindi verranno sovrascritti dopo una settimana. In alternativa puoi usare find / backupdir -mtime +7 -name '* .tar' -exec rm {} \;
stivlo

1

È meglio usare rsync per questo tipo di lavoro di backup. Rsync è un'utilità su misura per questo, può richiedere backup incrementali confrontando i backup precedenti e quelli nuovi.

Se vuoi puoi combinare rsync con logrotate .


+1 per rsync. Usa con cron per ulteriore utilità.
Lukasa

0

Sono un fan dei backup completi basati su hardlink, poiché nella maggior parte delle applicazioni consumano solo poco più spazio dei backup incrementali, ma offrono comunque il massimo del lusso dei backup completi.

Lo strumento per automatizzare i backup basati su collegamenti fisici è rsnapshot , che è basato su rsync. Puoi anche usare direttamente rsync con il --link-dest passare per abilitare il collegamento con un backup precedente per i file non modificati. rsnapshot offre comunque tutte le metaprincipalità in giro (mantenendo n molti backup, cancellando quelli vecchi ecc.).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.