17/07/2010

Script per il backup automatico di un sito Web

Sulla falsariga dello script 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 script"
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 script 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 script, digitando sudo chmod +x backupsito e successivamente lo copio nella cartella /usr/bin mediante il comando sudo cp /backupsito /usr/bin.

Ora, tale script 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.

09:44 Scritto da: nazarenolatella in SO: Linux | Link permanente | Commenti (0) | Segnala | Tag: bash, scripting, backup sito web | OKNOtizie |  Facebook