Sulla falsariga dello scrip per il backup automatico di un database, ho deciso di crearne uno che effettua periodicamente il backup di un sito Web (un pò come avviene con gli hosting provider).
Ecco il codice:
#!/bin/bash datasito=$(date +"%d_%b_%y") montaggiosito=$(mount | grep /media/disk) #File di log FILELOG=/var/log/backupmiosito ROOT_UID=0 if [ "$UID" -ne "$ROOT_UID" ];then ERRORE1="Errore 1: Devi essere root per eseguire lo scrip" echo $ERRORE1 echo "$(date) $ERRORE1" >> $FILELOG exit 1 fi if [ ! -n "$montaggiosito" ]; then mount /media/disk fi if [ ! -d /media/disk/backup/miosito ]; then cd /media/disk mkdir /media/disk/backup/miosito fi cd /media/disk/backup/miosito mkdir backup_$datasito cp -r /var/www/miosito /media/disk/backup/miosito/backup_$datasito exit 0
Come potete notare, tale scrip si differenzia da quello per il backup del database sono nelle ultime righe (e per qualche nome assegnato alle variabili). Nella fattispecie, il comando cp -r /var/www/miosito /media/disk/backup/miosito/backup_$datasito non fa altro che copiare tutto il contenuto della directory /var/www/miosito (comprese le sottodirectory, grazie alla flag -r) in /media/disk/backup/miosito/backup_$datasito.
Rendo eseguibile lo scrip, digitando sudo chmod +x backupsito e successivamente lo copio nella cartella /usr/bin mediante il comando sudo cp /backupsito /usr/bin.
Ora, tale scrip può essere eseguito ad intervalli di tempo regolari, semplicemente inserendo la seguente istruzione nel file crontab presente nella directory /etc:
0 21 * * * root backupsito > /dev/null 2>&1
ed il gioco è fatto.
See ya.