Script di backup per estensioni

Quando la mole di dati diventa troppo onerosa per la cassetta, una soluzione può essere creare un backup che prenda solo determinate estensioni.
Questo ne è un esempio:

#!/bin/bash
echo "" >> /home/debs1/backup_log/$(date '+%Y_%m_%d_%a_backup').log
echo "------------------------------------------" >> /home/debs1/backup_log/$(date '+%Y_%m_%d_%a_backup').log
date '+Backup di %A %d/%m/%Y inizio ore %T' >> /home/debs1/backup_log/$(date '+%Y_%m_%d_%a_backup').log
echo "------------------------------------------" >> /home/debs1/backup_log/$(date '+%Y_%m_%d_%a_backup').log
echo "" >> /home/debs1/backup_log/$(date '+%Y_%m_%d_%a_backup').log
mt -f /dev/nst0 rewind
rm /home/debs1/backup_log/lista
for ext in $(cat /home/debs1/estensioni.txt)
        do find /media/sda1/dati/ -name "$ext" >> /home/debs1/backup_log/lista
done
tar -cvf /dev/nst0 --files-from /home/debs1/backup_log/lista >> /home/debs1/backup_log/$(date '+%Y_%m_%d_%a_backup').log
mt -f /dev/nst0 rewind
mt -f /dev/nst0 eject
echo "" >> /home/debs1/backup_log/$(date '+%Y_%m_%d_%a_backup').log
echo "------------------------------------------" >> /home/debs1/backup_log/$(date '+%Y_%m_%d_%a_backup').log
date '+Backup di %A %d/%m/%Y fine ore %T' >> /home/debs1/backup_log/$(date '+%Y_%m_%d_%a_backup').log
echo "------------------------------------------" >> /home/debs1/backup_log/$(date '+%Y_%m_%d_%a_backup').log
echo "" >> /home/debs1/backup_log/$(date '+%Y_%m_%d_%a_backup').log
chmod 777 /home/debs1/backup_log/*
cd /home/debs1/backup_log/
echo "Backup di "$(date '+%a %d %m %Y')" concluso." > mail.log
echo "" >> mail.log
echo "Numero file in cassetta:" >> mail.log
cat /home/debs1/backup_log/"$(date '+%Y_%m_%d_%a_backup')".log | grep -c "media/sda1/dati" >> mail.log
echo "Numero file previsti:" >> mail.log
cat /home/debs1/backup_log/lista | grep -c "media/sda1/dati" >> mail.log
let dif=$(cat /home/debs1/backup_log/lista | grep -c "media/sda1/dati")-$(cat /home/debs1/backup_log/"$(date '+%Y_%m_%d_%a_backup')".log | grep -c "media/sda1/dati")
echo "Differenza:" >> mail.log
echo $dif >> mail.log
echo "" >> mail.log
echo "Di cui:" >> mail.log
echo -n "mp3 > " >> mail.log
find /media/sda1/dati/* -name *mp3 | grep -c \n >> mail.log
echo -n "wma > " >> mail.log
find /media/sda1/dati/* -name *wma | grep -c \n >> mail.log
echo -n "avi > " >> mail.log
find /media/sda1/dati/* -name *avi | grep -c \n >> mail.log
echo "" >> mail.log
echo "File log:" >> mail.log
ls *.log -hs1t >> mail.log
echo "" >> mail.log
echo "End of file" >> mail.log
cat mail.log | /usr/bin/nail -s "Backup di "`date '+%A'` utente@azienda.it

lo script come prima cosa cerca tutti i file con le estensioni riportate in estensioni.txt, tipo queste:

*.doc
*.xls

Poi tramite tar, fa un backup su nastro di questi file, e contemporaneamente crea un log di quello che ha copiato.
Infine crea un report e lo invia tramite posta elettronica ad un utente.

Comments are closed.