Script bash per il backup automatico Mysql , Apache, Email - Roberto D'Alessio
I'm specialize in .NET, JAVA, PHP, iPhone App Development, Android App Development, iPad App Development, iOS Development,web design, web developer, web development and IT Solution
iphone development, iphone app development, ipad app development, android development, android app development, iphone app developers, iphone application development, android application development, mobile app development, italy outsource, italy outsourcing company, italy outsourcing companies, italy outsourcing, italy software outsourcing, Italy offshore, software outsourcing, Software testing companies, web design, web developer, web development, IT Solution, wordpress, joomla, angular, angularjs, angular.js, nodejs, node.js, socketio, socket.io, react, ionic, xamarin, hybrid app, web site, development site, site development
30
wp-singular,post-template-default,single,single-post,postid-30,single-format-standard,wp-theme-bridge,cookies-not-set,qode-quick-links-1.0,ajax_fade,page_not_loaded,,qode_grid_1300,qode-content-sidebar-responsive,qode-theme-ver-11.1,qode-theme-bridge,wpb-js-composer js-comp-ver-8.4.1,vc_responsive
Script bash per il backup automatico Mysql , Apache, Email
16 Dic Script bash per il backup automatico Mysql , Apache, Email
Posted at 09:44h
in
Bash
by notelseit
#!/bin/bash # Script per la creazione di backup dei database MySQL e della directory /var/www #Definisco le variabili contenenti le credenziali di accesso MyUSER="USER" # Nome Utente di MySQL MyPASS="PASSWORD" # Password di MySQL MyHOST="localhost" # Nome Host sul quale gira MySQL MySourceDir="/var/www/virtual/" # Directory soggetta a backup Email="/var/mail/virtual/" #Utilizzo which per recuperare il path dei comandi che utilizzo e fare in modo #che lo script sia il piu' flessibile possibile MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" CHOWN="$(which chown)" CHMOD="$(which chmod)" GZIP="$(which gzip)" TAR="$(which tar)" DAY="$(date +%a)" DEST="/home/backup/" #Imposto la directory principale per il backup HOST="$(hostname)" #Recupero il nome dell'host NOW="$(date +"%Y-%m-%d")" #Recupero la data odierna nel formato YYYY-MM-DD MBD="$DEST/$NOW/mysql-$NOW" #Imposto la directory all'interno della quale saranno #posti i backup dei database di MySQL DIRDEST="$DEST/$NOW/web-$NOW" #Imposto la directory entro la quale sare' posto il #backup della root directory di Apache EMAILDEST="$DEST/$NOW/mail-$NOW" #Bakup email # Variabile che definisce all'interno di quale file effettuare il backup FILE="" # Variabile dove memorizzo i nomi dei DB presenti DBS="" # Lista dei database da escludere dal backup IGGY="test" [ ! -d $MBD ] && mkdir -p $MBD || : # Imposto i permessi in modo che solo root possa accedere ai backup $CHOWN 0.0 -R $DEST $CHMOD 0600 $DEST #Procedo con la creazione del backup della Source_Dir sopra specificata # Recupero la lista di tutti i database DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')" #Procedo con la creazione dei dump di ogni singolo database 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" $MYSQLDUMP --skip-lock-tables -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE echo "Backup del Database $db completo!" fi done #Procedo con la creazione del backup della Source_Dir sopra specificata echo "Inizio Backup di $MySourceDir" [ ! -d $DIRDEST ] && mkdir -p $DIRDEST || : WDS=`dir $MySourceDir` if [ $DAY == "Mon" ] then for w in $WDS do FILE="$DIRDEST/source-$w.tar.gz" $TAR -czvf $FILE $MySourceDir/$w/* #$TAR -czpf - $MySourceDir/$w/* | ssh root@5.9.148.135 "cat > /srv/242/$FILE " done else for w in $WDS do FILE="$DIRDEST/source-$w.tar.gz" #$TAR -czvf $FILE $MySourceDir/$w/* $TAR -czpf $FILE -N "$(date -d '1 day ago')" $MySourceDir/$w/* #echo "Inizio verifica del backup creato" #tar --diff --compare --verbose -f $DIRDEST/source-$w-$NOW.tar.gz echo "Backup di /var/www completo!" done fi echo "Inizio Backup di $EMAILDEST" [ ! -d $EMAILDEST ] && mkdir -p $EMAILDEST || : WES=`dir $Email` for w in $WES do FILE="$EMAILDEST/mail-$w-$NOW.tar.gz" $TAR -czpf $FILE $Email/$w/* done #scp -r /home/backup/$NOW root@IP:/backup/$NOW sftp root@IP << EOI cd /backup/ mkdir $NOW cd $NOW mkdir mysql-$NOW mkdir mail-$NOW mkdir web-$NOW put -r $DEST/$NOW/mysql-$NOW/* /backup/$NOW/mysql-$NOW put -r $DEST/$NOW/mail-$NOW/* /backup/$NOW/mail-$NOW put -r $DEST/$NOW/web-$NOW/* /backup/$NOW/web-$NOW EOI rm -Rf /home/backup/