Io i file di backup li copio direttamente sul pc di backup.
Eccoti lo script:
codice:
#! /bin/bash
# stampa data esecuzione programma
echo $(date);
# montaggio filesystem del server di backup remoto
if mount -t smbfs -o credentials=/var/backup_script/pswbackup //123.123.123.123/backup /mnt/backup;
then echo "Filesystem remoto montato";
else echo "Errore: montaggio filesystem remoto non risucito";
fi;
# copia dei file
if cp -u -R /var/www/html /mnt/backup;
then echo "Copia dei file in remoto riuscita";
else echo "Errore: copia dei file in remoto non riuscita";
fi;
# dump database mysql
dumpname="mysqldump-$(date +%Y%m%d).sql";
if mysqldump -A --user=*** --password=*** > /mnt/backup/$dumpname;
then echo "Mysql dump riuscito";
else echo "Errore: Mysql dump non riuscito";
fi;
# smontaggio filesystem remoto
if umount /mnt/backup;
then echo "Smontaggio filesystem remoto riuscito";
else echo "Errore: smontaggio filesystem remoto non riuscito";
fi;
Note:
- dare il permesso di esecuzione al file contenente lo script
- metterlo nelle crontab
- credentials=/var/backup_script/pswbackup: creare il file /var/backup_script/pswbackup che conterrà utente e password della condivisione remota:
username = pincopallino
password = passw_pincop
- Dare il permesso di lettura, scrittura e esecuzione solo al proprietario del file
- //123.123.123.123/backup è l’indirizzo ip e la cartella condivisa nella quale si farà la copia dei file
- /mnt/backup è la cartella del server nella quale verrà montata la condivisione (crearla con i permessi adeguati)
- /var/www/html è la cartella che voglio backuppare
- dumpname="mysqldump-$(date +%Y%m%d).sql" è il nome del file sql con la data.