Script bash per il backup automatico di un database

Dovendo gestire diversi database su più server ho avuto la necessità di creare uno scripino che automatizzasse la creazione dei loro backup.
Riporto quindi lo scrip per intero e successivamente provvederò a spiegare le varie sezioni del codice, anche se a primo acchito tutto dovrebbe apparire piuttosto chiaro.
#!/bin/bash data=$(date +"%d_%b_%y") montaggio=$(mount | grep /media/disk) #File di log FILELOG=/var/log/backup 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 "$montaggio"  ]; then mount /media/disk fi if [ ! -d /media/disk/backup/ ]; then cd /media/disk mkdir /media/disk/backup fi cd /media/disk/backup mysqldump nomedatabase -u username -pvostrapassword > database_$data.pl exit 0 Per prima cosa salvo all'interno della variabile "data" l'output del comando date formattato nel seguente modo: giorno_prime 3 lettere del mese (in inglese)_anno successivamente definisco all'interno della variabile FILELOG il pathname relativo al file su cui verranno loggati i vari messaggi di errore dello scrip, in questo caso /var/log/backup.
Dopodichè mi accerto che lo scrip venga eseguito da root, poichè lo stesso verrà dato in pasto a cron per essere eseguito con tali privilegi.
A questo punto verifico che l'hard disk secondario sia montato, eseguendo il comando: mount | grep /media/disk Se tale comando restituisce una stringa vuota eseguo il mount dell'hard disk secondario e successivamente mi posiziono in /media/disk.
Ora devo verificare che la cartalla backup sia presente in /media/disk.
Se non lo è provvedo a crearla (in realtà tale operazione verrà effettuata soltanto durante la prima esecuzione dello scrip).
Bene, posso quindi posizionarmi in /media/disk/backup e successivamente effettuare il dump del database mediante il comando mysqldump.
Notate che tra la flag -p e la password per accedere al database non vi sono spazi.
Inoltre, il dump verrà salvato in un file il cui nome è costituito dalla stringa database_dataattuale.pl, ad esempio: database_01_Jul_01.pl Abbiamo quasi finito, non ci resta che creare un binario criptato (RC4) partendo dal nostro scrip, poichè quest'ultimo contiene diverse informazioni critiche, quali, ad esempio, username e password di accesso al database.
Per fare ciò possiamo utilizzare una semplice applicazione, ovvero shc (il sito ufficiale è il seguente: http://www.datsi.fi.upm.es/~frosal/) Scarichiamo tale applicazione tramite wget: wget [...]

Leggi tutto l'articolo