Sai realizzare una LAMP seguendo i consigli di questo articolo ? Ci sono operazioni di routine che potebbero essere automatizzate! Un esempio? Il backup periodico di tutti i database SQL collegati ai tuoi rispettivi siti dinamici all’interno del tuo server… leggi per capire come fare!
GLI SCRIPT E L’AUTOMAZIONE: ACCOPPIATA VINCENTE
Uno script è sostanzialmente un programma, o meglio, un insieme di comandi raccolti in un file di testo che può essere utilizzato per varie finalità: per esempio per compiere azioni ripetitive in una singola esecuzione, risparmiandoci tempo e fatica. Un utilizzo assai utile può essere ad esempio quello di backup
BACKUP DEI DATABASE SQL DEL PROPRIO SERVER
Supponiamo ad esempio di avere un server LAMP con parecchi virtual host nei quali sono installati dei rispettivi CMS (WordPress, Drupal, ecc…) e che questi a loro volta facciano girare dei web site: sebbene esistano strumenti che integrino strumenti per esportazione dei database (per esempio phpMyAdmin)…effettuare un login ogni volta ed esportarli uno per uno può essere faticoso! Utilizziamo invece uno script ad hoc!
UNO SCRIPT MAGICO!
Il seguente script ti aiuterà a compiere l’archiviazione (è una modifica di quello presente su Cibercity.biz) … occorre semplicemente creare una directory apposita (nell’esempio: “cronbackupsql”) all’interno del server che ospita la nostra LAMP (per esempio in /root) ed avere ovviamente l’username & la password utilizzate per il collegamento al CMS (le stesse che utilizzeremmo per phpMyAdmin). Vediamo il procedimento assieme:
# mkdir /root/cronbackupsql
Supponendo come user: fabrizio e pass: 123456
# cd /root
# touch /root/mysqlbackupper.sh
MyUSER="fabrizio" # USERNAME MyPASS="123456" # PASSWORD MyHOST="localhost" # Hostname # Linux bin paths, change this if it can't be autodetected via which command MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" CHOWN="$(which chown)" CHMOD="$(which chmod)" GZIP="$(which gzip)" # Backup Dest directory, change this if you have someother location DEST="/root/cronbackupsql" # Main directory where backup will be stored MBD="$DEST" # Get hostname HOST="$(hostname)" # Get data in dd-mm-yyyy format NOW="$(date +"%d-%m-%Y")" # File to store current backup file FILE="" # Store list of databases DBS="" # DO NOT BACKUP these databases IGGY="test" [ ! -d $MBD ] && mkdir -p $MBD || : # Only root can access it! $CHOWN 0.0 -R $DEST $CHMOD 0600 $DEST # Get all database list first DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')" for db in $DBS do skipdb=-1 if [ "$IGGY" != "" ]; then for i in $IGGY do [ "$db" == "$i" ] && skipdb=1 || : done fi if [ "$skipdb" == "-1" ] ; then FILE="$MBD/$db.$HOST.$NOW.gz" # do all inone job in pipe, # connect to mysql using mysqldump for select mysql database # and pipe it out to gz file in backup dir :) $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE fi done
Salviamo adesso il file dentro /root ed avviamolo da tale directory con:
# ./mysqlbackupper.sh
Fatto! Al termine del processo troveremo i nostri database comodamente compressi direttamente all’interno di /root/cronbackupsql !