Raspberry Pi – Copia de datos del sistema

En esta ocasión montaremos un script que nos permite guardar comprimido los datos fundamentales de la Raspberry Pi

Para ello crearemos el siguiente scrpit

######################################################################################
#!/bin/bash    
 
#Local
FICHERO=backup_`hostname`_`date +%d%m%y`.tar.gz

# Un log, porque la vida sin logs no es nada
RUTA_LOG="/home/antonio/scripts/log_backup.txt"

echo "#################################################################" >> $RUTA_LOG
echo "INICIO DEL BACKUP DATOS DEL SISTEMA" >> $RUTA_LOG
echo "#################################################################" >> $RUTA_LOG
echo `uptime` | sed -e 's/^[ \t]*//'  >> $RUTA_LOG
echo "#################################################################" >> $RUTA_LOG

echo `date +"%T"` "comenzando backup sistema ..." >> $RUTA_LOG

sudo iw wlan0 set power_save off

sleep 1

sudo mount -av

sleep 1

#Borrado de los ficheros anteriores a seis meses
sudo find /mnt/copias/* -mtime +180 -exec rm {} \;

#Creamos el directorio temporal de copias
rm -rf /home/antonio/backup_tmp
mkdir /home/antonio/backup_tmp

#Backup base de datos si las hubiera
mysqldump --all-databases > /home/antonio/backup_tmp/mysql.sql


#copia de los datos importantes al directorio temporal
echo `date +"%T"` "copia de la los datos ..." >> $RUTA_LOG
dpkg --get-selections > /home/antonio/backup_tmp/Package.list
sudo cp -R /etc/apt/sources.list* /home/antonio/backup_tmp/
sudo cp -R /var/spool/cron/* /home/antonio/backup_tmp/
sudo apt-key exportall > /home/antonio/backup_tmp/Repo.keys
sudo cp -R /var/spool/cron/* /home/antonio/backup_tmp/cron/

#comprimir directorio
echo `date +"%T"` "comprimir los datos ..." >> $RUTA_LOG
tar -czf /home/antonio/backup_tmp/$FICHERO /home /etc /usr/local/etc /home/antonio/backup_tmp

#Subida de los datos
echo `date +"%T"` "Subida de la copia al NAS ..." >> $RUTA_LOG
cp /home/antonio/backup_tmp/$FICHERO /mnt/copias/

#Borrado del directorio tempotal
rm -rf /home/antonio/backup_tmp

echo "#################################################################" >> $RUTA_LOG
echo `date +"%T"` "FIN DEL BACKUP" >> $RUTA_LOG
echo "#################################################################" >> $RUTA_LOG

######################################################################################

En menos de 15 minutos tendremos a buen recaudo una copia de todos nuestros datos

#################################################################
INICIO DEL BACKUP DATOS DEL SISTEMA
#################################################################
11:32:49 up 6:32, 2 users, load average: 1,80, 1,95, 1,87
#################################################################
11:32:49 comenzando backup sistema ...
11:35:13 copia de la los datos ...
11:35:15 comprimir los datos ...
11:38:06 Subida de la copia al NAS ...
#################################################################
11:46:38 FIN DEL BACKUP
#################################################################

Solo falta ponerlo como tarea en cron y a funcionar

#Copia del sistema semanal
0 10 * * sat   /bin/sh  /home/antonio/scripts/sbackup.sh

Y esto es todo ……..