Pianificazione di uno script di backup con cron

4 risposte [Ultimo contenuto]
Ritratto di euthymos
euthymos
(Newbie)
Offline
Newbie
Iscritto: 19/08/2007
Messaggi: 5

Salve a tutti,

ho creato, scopiazzando qua e là, un semplice script di backup per mysql:

<br />#!/bin/sh<br /><br />#  /usr/lib/mybackup.sh<br /><br />TEMP_DIR=&#039;/usr/backups/temp&#039;; # Directory di backup temporanea<br />MAIL_DEST=&lt;email nascosta&gt;<br /><br /># Spostati sulla directory temporanea<br />cd $TEMP_DIR<br /><br /># Genera il timestamp<br />TIMESTAMP=`date +%d-%B-%Y.%H-%M`<br /><br />/usr/bin/mysqldump --all-databases --opt -c -e -Q --user=root --password=&#039;&lt;password nascosta&gt;&#039; --result-file=$TEMP_DIR/dump.sql<br /><br /># Comprimi il dump<br />tar -czf $TIMESTAMP.tar.gz dump.sql<br /><br /># Cifra il dump<br />gpg --symmetric --passphrase &quot;&lt;password nascosta&gt;&quot; $TIMESTAMP.tar.gz<br /><br /># Manda il file via e-mail<br />mutt -s &quot;Backup database $TIMESTAMP&quot; -a $TIMESTAMP.tar.gz.gpg $MAIL_DEST &lt; /dev/null<br /><br /># Ripulisci la directory temporanea<br />cd $TEMP_DIR<br />rm -rf *<br />

Lo posto qui nella speranza che sia utile a qualcuno...

E ora il problema! Voglio che venga eseguito sempre a una certa ora del giorno.

Ho inserito un file chiamato mybackup nella cartella /etc/cron.d siffatto:

<br /><br /># /etc/cron.d/mybackup: backup automatico del DB alle 00:10<br /><br />PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin<br /><br /> 10 00 * *       /usr/lib/mybackup.sh<br /><br /># EOF<br /><br />

Lo script mybackup.sh, se lanciato manualmente, funziona una meraviglia, ma alle ore 00:10 non accade ASSOLUTAMENTE NULLA.

Ho bisogno del vostro aiuto. Chi mi sa dare una mano?

Grazie in anticipo!

Ritratto di euthymos
euthymos
(Newbie)
Offline
Newbie
Iscritto: 19/08/2007
Messaggi: 5

Risolto

<br /> 10 00 * * *      root  /usr/lib/mybackup.sh<br />

Ora funziona...

Ritratto di maxmauri
maxmauri
(Newbie)
Offline
Newbie
Iscritto: 12/01/2008
Messaggi: 2

Salve
Dopo aver seguito questi passi, ho fatto una prova ed ad un certo punto ha cominciato a cancellarmi tutto, ho provato a fermarlo ma non c'e' stato verso, mi ha cancellato tutto o quasi in quanto non funzionano piu le email e non riesco piu a collegarmi in remoto mentre continuo a vedere almeno per il momento i siti che ho sul server.
 
Cosa puo essere successo e ci sara un sistema per rimediare, sono disperato
Grazie in anticipo

Ritratto di mcortese
mcortese
(Guru)
Offline
Guru
Iscritto: 27/02/2009
Messaggi: 540

Alla fine dello script c'è un passaggio delicatissimo:

cd $TEMP_DIR
rm -rf
 
Questo cancella tutto ciò che c'è in $TEMP_DIR, comprese le sottocartelle. Se, ad esempio, uno ha impostato TEMP_DIR=/tmp, ecco scomparire un bel po' di cose interessanti!
Se poi uno ha commesso un errore di battitura (che so, ad esempio TMP_DIR invece che TEMP_DIR), il cd non si sposta nella directory prevista e il successivo rm cancella tutto ciò che si trova nella directory corrente!

Ritratto di mcortese
mcortese
(Guru)
Offline
Guru
Iscritto: 27/02/2009
Messaggi: 540

@euthymos: ma non sarebbe più semplice e chiaro mettere lo script (o un suo link) in /etc/cron.daily senza impazzire con la sintassi da crontab?