Codice: Seleziona tutto
#!/bin/bash
# Simple backup script, edit your crontab and add the line
# 0 2 * * * /home/ftpbackup.sh o sistemd
# modifica 27.12.16 by Moretti Cesare
LOCKFILE=/var/run/ftpbackup.pid
if [ -f $LOCKFILE ]; then
CPID="`cat $LOCKFILE`"
fi
if [ -e ${LOCKFILE} ] && kill -0 `cat ${LOCKFILE}`; then
echo "A Plugbox backup is already running as PID:$CPID"
exit
else
echo "Starting to backup Raspberry.."
fi
HOST="KKKKK.superweb.ws" # web server remoto ftp
USER="YYYY" # nominativo accesso
FTPPASS="XXXXX" # passwd
LCD="/var/www/" # percorso server locale dei files da salvare, sostituire il percorso se il server è /var/www/
RCD="/backupdir/mirror/" # creare una cartella da utilizzare su server remoto in questo caso "plugbox"
DOMOTIC_BK="/var/www/domoticz_backup" #cartella per domoticz backup
/usr/bin/curl -s http://192.168.0.105:8085/backupdatabase.php > $DOMOTIC_BK/domoticz.db # copio database DOMOTICZ in /var/www/domoticz_backup
# make sure the lockfile is removed when we exit and then claim it
trap "rm -f ${LOCKFILE}; exit" INT TERM EXIT
echo $$ > ${LOCKFILE}
# upload files
lftp -e "set ftp:list-options -a;
open ftp://$USER:$FTPPASS@$HOST;
lcd $LCD;
cd $RCD;
mirror -n --only-newer -Re --use-cache;
quit"
rm -f ${LOCKFILE}
lo script è di tipo incrementale e per le mie esigenze funziona molto bene
sono riuscito ad aggiungere il backup del file db di domoticz in modo da avere sempre l'ultimo.
ora avrei una richiesta, se possibile.
mi sono accorto che a fine novembre il provider dello spazio ftp "supereb.ws" per un problema suo non accettava autenticazioni esterne.
me ne sono accorto solo ieri, lo ho fatto presente ed hanno sistemato subito ed ora funiona nuovamente.
per fortuna non ho avuto guasti o altro in questo periodo, altrimenti non avrei avuto backup aggiornati con gli ultimi giorni.
per ovviare a questo problema, è possibile mettere una sorta di controllo, che se per qualsiasi motivo il backup non va a buon fine, ricevo una segnalaione?
per la segnalazione mi arrangio da solo con domoticz, ma per farlo avrei bisogno, se appunto lo script di backup termina per un qualsiasi errore di mandare un segnale del tipo:
Codice: Seleziona tutto
http://$domoticzIP:$domoticzPort/json.htm?type=command¶m=switchlight&idx=$signalSwitch&switchcmd=On"
nello script sh potrei mettere come parametri:
Codice: Seleziona tutto
domoticzURL="http://$domoticzIP:$domoticzPort/json.htm?type=command¶m=switchlight&idx=$signalSwitch&switchcmd=On"
domoticzIP='192.168.0.105'
domoticzPort=8085
signalSwitch=152
però come posso fare in modo che esegua il comando:
Codice: Seleziona tutto
http://$domoticzIP:$domoticzPort/json.htm?type=command¶m=switchlight&idx=$signalSwitch&switchcmd=On"
solo se lo script di backup si interrompe?
grazie