Script que fa còpies de seguretat en local i a un servidor remot

Aquest és l'script definitiu :-) millorant un xicotet script que tenia publicat a la web, vaig refer-lo per tal de que, en cas de que la màquina se trenque, també tinga les còpies de seguretat a un servidor remot.

Aleshores, ara tinc la còpia de la nit anterior a dos llocs: al meu servidor domèstic nuvolet.strangled.net i a un altre servidor remot que té habilitat el servei de FTP. Les còpies les faré, a partir d'ara, cada nit a les 5 del matí.

Aquest és l'script. Ets lliure de modificar-lo, millorar-lo i publicar-lo on vullgues:


###################################################################
# Backup de tots els sites del servidor OpenBSD #
# #
# 1.Primer copie alguns fitxers i bases de dades #
# 2.Fem el tar.gz de tot el /var/www/htdocs #
# 3.Enviem també el backup a un servidor via FTP #
# 4.Enviem una notificació per e-mail. #
# #
# Versió 0.2 - 26/08/2013 #
###################################################################

# Preparem el sistema: entrem a /var/www/backups i creem un directori per a cada dia
#
cd /var/www/backups
NOW=$(date +"%Y%m%d")
mkdir $NOW
cd $NOW

###################################################################
# [Copia 1] Copiem 4 bases de dades (de prova: bbdd1, bbdd2, bbdd3 i bbdd4)
###################################################################
/usr/local/bin/mysqldump -h localhost -u USUARI -pTU_PASS BBDD1 | gzip > ./$NOW.BBDD1.sql.gz
/usr/local/bin/mysqldump -h localhost -u USUARI -pTU_PASS BBDD2 | gzip > ./$NOW.BBDD2.sql.gz
/usr/local/bin/mysqldump -h localhost -u USUARI -pTU_PASS BBDD3 | gzip > ./$NOW.BBDD3.sql.gz
/usr/local/bin/mysqldump -h localhost -u USUARI -pTU_PASS BBDD4 | gzip > ./$NOW.BBDD4.sql.gz

###################################################################
# [Copia 2] Copies de seguretat de fitxers importants (afegeix ací tots els teus)
###################################################################
cp /var/www/conf/httpd.conf .
cp /root/.profile .
cp /root/LLEGEIX-ME.txt .
cp /etc/ssh/ssh_config .
cp /etc/ssh/sshd_config .

###################################################################
# [Copia 3] Copiem els home dels usuaris (afegeix ací tots els teus usuaris)
###################################################################
tar cvfz ./home-root.tar.gz /root
tar cvfz ./home-usuari1.tar.gz /home/USUARI1
tar cvfz ./home-usuari2.tar.gz /home/USUARI2
tar cvfz ./home-usuari3.tar.gz /home/USUARI3
tar cvfz ./home-usuari4.tar.gz /home/USUARI4

###################################################################
# [Copia 4] Copiem el directori de les webs que tenim al htdocs
###################################################################
tar cvfz ./var-www-htdocs.tar.gz /var/www/htdocs

###################################################################
# [Copia 5] Creem un tar.gz amb tots els fitxers i el deixem a /var/www/backups
###################################################################
tar cvfz /var/www/backups/ultim-backup.tar.gz *

###################################################################
# [Copia 6] Pujem els arxius al servidor FTP
###################################################################
FTPHOST="FTP.EL-TEU-SERVIDOR-EXTERN-FTP.COM"
FTPUSER="USUARI-FTP"
FTPPASS="CONTRASENYA-FTP"
MEDIAFILE=/var/www/backups/ultim-backup.tar.gz

if [ -r $MEDIAFILE ]
# File seems to exist and is readable
then
ftp -n $FTPHOST quote USER $FTPUSER
quote PASS $FTPPASS
cd .
bin
put $MEDIAFILE ultim-backup.tar.gz
quit
END_SCRIPT
fi

# Enviem un correu notificador de que s'ha acabat el backup
/usr/local/bin/mutt -s "Base de dades realitzada correctament." -- joan@riseup.net

També et recomane un article que vaig fer fa temps sobre sincronitzacions de particions o de directoris amb rsync:

[Actualitzat] Creant un sistema de còpies de seguretat incrementals amb rsync entre dues o més màquines

¡Salut i Coneixement lliure!