#!/bin/bash # # Keszitette: Kiss Peter - rendszergazda.org.hu # 2011 TAVOLI_KONYVTAR[0]=szerver1::etc HELYI_KONYVTAR[0]=/backup/szerver1/etc DIFF_KONYVTAR[0]=/backup/szerver1/diff/etc EXCLUDE[0]="" LOG_FAJL[0]=/backup/log/szerver1.log TAVOLI_KONYVTAR[1]=szerver1::boot HELYI_KONYVTAR[1]=/backup/szerver1/boot DIFF_KONYVTAR[1]=/backup/szerver1/diff/boot EXCLUDE[1]="" LOG_FAJL[1]=/backup/log/szerver1.log TAVOLI_KONYVTAR[2]=szerver1::samba HELYI_KONYVTAR[2]=/backup/szerver1/samba DIFF_KONYVTAR[2]=/backup/szerver1/diff/samba EXCLUDE[2]=/etc/scripts/exclude-szerver1 LOG_FAJL[2]=/backup/log/szerver1.log TAVOLI_KONYVTAR[3]=szerver1::home HELYI_KONYVTAR[3]=/backup/szerver1/imap DIFF_KONYVTAR[3]=/backup/szerver1/diff/imap EXCLUDE[3]=/etc/scripts/exclude-szerver1 LOG_FAJL[3]=/backup/log/szerver1.log TAVOLI_KONYVTAR[4]=szerver2::etc HELYI_KONYVTAR[4]=/backup/szerver2/etc DIFF_KONYVTAR[4]=/backup/szerver2/diff/etc EXCLUDE[4]="" LOG_FAJL[4]=/backup/log/szerver2.log TAVOLI_KONYVTAR[5]=szerver2::boot HELYI_KONYVTAR[5]=/backup/szerver2/boot DIFF_KONYVTAR[5]=/backup/szerver2/diff/boot EXCLUDE[5]="" LOG_FAJL[5]=/backup/log/szerver2.log TAVOLI_KONYVTAR[6]=szerver2::samba HELYI_KONYVTAR[6]=/backup/szerver2/samba DIFF_KONYVTAR[6]=/backup/szerver2/diff/samba EXCLUDE[6]=/etc/scripts/exclude-szerver2 LOG_FAJL[6]=/backup/log/szerver2.log UTOLSO_MENTES_NAP=14 REGINAP=`date --date="$UTOLSO_MENTES_NAP day ago" +%Y%m%d` MAINAP=`date +%Y%m%d` LOGFAJL="/backup/log/rsync.log" NAPSZAM=`date +%u` DATUM_NAP=`date +%d` ADMIN_EMAIL=info@rendszergazda.org.hu # A meg futo mentest megallitjuk: pkill 'rsync -azv' df -h /backup > $LOGFAJL echo -e "\n`date` ============== Rsync Start ==============" >> $LOGFAJL if [ $NAPSZAM -eq 7 ] && [ $DATUM_NAP -ne 01 ] then #Vasarnap van, nem elseje -> Teljes mentes echo "`date` ============== Teljes mentes " >> $LOGFAJL for ((i=0; i<${#TAVOLI_KONYVTAR[*]}; i++ )) do SZAMLALO=$((i+1)) echo "`date` $SZAMLALO / ${#TAVOLI_KONYVTAR[*]} ============== ${TAVOLI_KONYVTAR[$i]}" >> $LOGFAJL echo "`date` ============== ${TAVOLI_KONYVTAR[$i]}" >> ${LOG_FAJL[$i]} if [ ${#EXCLUDE[$i]} -eq 0 ] then EXCLUDE_STRING="" else EXCLUDE_STRING="--exclude-from=${EXCLUDE[$i]}" fi rsync -azv --size-only $EXCLUDE_STRING= ${TAVOLI_KONYVTAR[$i]} ${HELYI_KONYVTAR[$i]} >> ${LOG_FAJL[$i]} done else if [ $DATUM_NAP -eq 01 ] then #Elseje van -> Teljes mentes, torlessel echo "`date` ============== Teljes mentes torlessel " >> $LOGFAJL for ((i=0; i<${#TAVOLI_KONYVTAR[*]}; i++ )) do SZAMLALO=$((i+1)) echo "`date` $SZAMLALO / ${#TAVOLI_KONYVTAR[*]} ============== ${TAVOLI_KONYVTAR[$i]}" >> $LOGFAJL echo "`date` ============== ${TAVOLI_KONYVTAR[$i]}" >> ${LOG_FAJL[$i]} #============== Regi mentes torlese rm -rf ${DIFF_KONYVTAR[$i]}/$REGINAP if [ ${#EXCLUDE[$i]} -eq 0 ] then EXCLUDE_STRING="" else EXCLUDE_STRING="--exclude-from=${EXCLUDE[$i]}" fi rsync -azv --size-only --delete $EXCLUDE_STRING ${TAVOLI_KONYVTAR[$i]} ${HELYI_KONYVTAR[$i]} >> ${LOG_FAJL[$i]} done else #Hetfotol szombatig (nincs vasarnap, sem elseje ) -> Inkrementalis mentes echo "`date` ============== Inkrementalis mentes " >> $LOGFAJL for ((i=0; i<${#TAVOLI_KONYVTAR[*]}; i++ )) do SZAMLALO=$((i+1)) echo "`date` $SZAMLALO / ${#TAVOLI_KONYVTAR[*]} ============== ${TAVOLI_KONYVTAR[$i]}" >> $LOGFAJL echo "`date` ============== ${TAVOLI_KONYVTAR[$i]}" >> ${LOG_FAJL[$i]} #============== Mai naphoz a konyvtar letrehozasa if [ ! -d "${DIFF_KONYVTAR[$i]}/$MAINAP" ] then mkdir -p ${DIFF_KONYVTAR[$i]}/$MAINAP fi #============== Regi mentes torlese if [ -d "${DIFF_KONYVTAR[$i]}/$REGINAP" ] then rm -rf ${DIFF_KONYVTAR[$i]}/$REGINAP fi #============== Mentunk if [ ${#EXCLUDE[$i]} -eq 0 ] then EXCLUDE_STRING="" else EXCLUDE_STRING="--exclude-from=${EXCLUDE[$i]}" fi rsync -azvm --size-only $EXCLUDE_STRING --compare-dest=${HELYI_KONYVTAR[$i]} ${TAVOLI_KONYVTAR[$i]} ${DIFF_KONYVTAR[$i]}/$MAINAP >> ${LOG_FAJL[$i]} && find ${DIFF_KONYVTAR[$i]}/ -depth -type d -empty -exec rmdir {} \; done fi fi echo "`date` ============== Rsync Finished ==============" >> $LOGFAJL echo "============== Mai mentes merete: ==============" >> $LOGFAJL du -sh /backup/*/diff/*/$MAINAP/ | grep -v K >> $LOGFAJL echo "============== Maradek hattertar : ==============" >> $LOGFAJL df -h /backup >> $LOGFAJL mail $ADMIN_EMAIL -s " Rsync mentes $MAINAP " < $LOGFAJL # Logrotalas mv $LOGFAJL $LOGFAJL.$MAINAP rm $LOGFAJL.$REGINAP