PDA

View Full Version : Bash, script di backup settimanale senza crontab!


petitof
27-07-2007, 14:49
Ciao ragazzi!!
Ho sviluppato una macchina virtuale con la versione server della mitica distribuzione Ubuntu, all'interno ho MySQL con uno schema di cui faccio un backup riponendolo in percorsi suddivisi per data:
#!/bin/bash

######### CARICO I PROFILI
. /home/demo/.bashrc

######### COMPOSIZIONE NOME FILES
AC=`date +%Y`
YY=`date +%y`
MM=`date +%m`
DD=`date +%d`
HH=`date +%H`
MI=`date +%M`
SS=`date +%S`
sDate=$AC.$MM.$DD"_"$HH.$MI.$SS

HOME_BACKUP=$HOME/backup-database/$sDate
mkdir $HOME_BACKUP

mysqldump schemademo > $HOME_BACKUP/schemademo.sql -u demo --password=demo

zip -9 -q $HOME_BACKUP/schemademo.zip $HOME_BACKUP/schemademo.sql
rm $HOME_BACKUP/schemademo.sql


Il mio problema è che, essendo una macchina virtuale abbastanza piccola, non voglio rischiare di esaurire lo spazio quindi avrei la necessità di cancellare quelli più arretrati oppure farlo circolare/settimanale.
Non posso usare crontab perchè non è sempre accesa, conoscente un metodo carino per fare tutto ciò?

:rolleyes:

ilsensine
27-07-2007, 15:02
at

dupa
27-07-2007, 15:10
Ciao ragazzi!!
Ho sviluppato una macchina virtuale con la versione server della mitica distribuzione Ubuntu, all'interno ho MySQL con uno schema di cui faccio un backup riponendolo in percorsi suddivisi per data:
#!/bin/bash

######### CARICO I PROFILI
. /home/demo/.bashrc

######### COMPOSIZIONE NOME FILES
AC=`date +%Y`
YY=`date +%y`
MM=`date +%m`
DD=`date +%d`
HH=`date +%H`
MI=`date +%M`
SS=`date +%S`
sDate=$AC.$MM.$DD"_"$HH.$MI.$SS

HOME_BACKUP=$HOME/backup-database/$sDate
mkdir $HOME_BACKUP

mysqldump schemademo > $HOME_BACKUP/schemademo.sql -u demo --password=demo

zip -9 -q $HOME_BACKUP/schemademo.zip $HOME_BACKUP/schemademo.sql
rm $HOME_BACKUP/schemademo.sql


Il mio problema è che, essendo una macchina virtuale abbastanza piccola, non voglio rischiare di esaurire lo spazio quindi avrei la necessità di cancellare quelli più arretrati oppure farlo circolare/settimanale.
Non posso usare crontab perchè non è sempre accesa, conoscente un metodo carino per fare tutto ciò?

:rolleyes:

mah, basta che usi crontab con una frequenza molto elevata (una volta all'ora) e tieni traccia in un file di quando è stata l'ultima volta che ha girato il backup. quando dall'ultima volta è passata una settimana, vai di backup

kingv
27-07-2007, 15:54
C
Non posso usare crontab perchè non è sempre accesa, conoscente un metodo carino per fare tutto ciò?




anacron, è fatto apposta per sostituire cron in questi casi.

Psycotic
27-07-2007, 16:28
Bah io userei semplicemente il find alla fine del tuo script

find /path -type d -mtime +7 -exec rm -r {} \;
cosi zappi tutte le dir piu' vecchie di una settimana

tra {} e \ c'e' uno spazio... :D

ochhio a non sbagliare che e' pericoloso quell' rm in quel modo :D

Psycotic
27-07-2007, 16:37
ok ok ho letto in modo scollegato :D nn cio' fatto caso che ti riferivi anche a far girare lo script di backup in automatico..