1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/bin/bash
- DATE=`date +%Y-%m-%d`
- exclude_file=exclude.exl
- time_main1=$(date +"%s")
- mainlogfile=/mnt/LVM1/backup/Backup_10.0.4.3-$DATE.log
- #start logging
- echo "-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" >> $mainlogfile
- echo " " >> $mainlogfile
- echo "-----------------start backup @ `date`-----------------------------------------------------------------------------------------------------------------------" >> $mainlogfile
- #load config files
- for file in */*.cfg
- #load config file parameters
- do
- LINES=()
- while IFS= read -r line
- do
- LINES[${#LINES[@]}]="$line"
- done < $file
- #set some variables
- logfile=${file##*/}
- logfile=${logfile%%.cfg}.log
- exclude_file=${LINES[4]}
- time1=$(date +"%s")
- #Do the Job
- echo "Start backup script $logfile @ `date`" >> $mainlogfile
-
- #remove old logfile
- echo " removing old log file ${LINES[2]}/$logfile, start rsync for $logfile @ `date`" >> $mainlogfile
- rm ${LINES[2]}/$logfile >> $mainlogfile
- echo "Start backup script @ $time_main" >> ${LINES[2]}/$logfile
- echo "start rsync for forlder ${LINES[1]} @ ${LINES[5]}"
- echo "start rsync for forlder ${LINES[1]} @ ${LINES[5]} `date`" >> ${LINES[2]}/$logfile
- echo " " >> ${LINES[2]}/$logfile
- rsync -avL --exclude-from=$exclude_file --log-file=${LINES[2]}/$logfile -e "ssh -i ${LINES[3]}" --delete-during ${LINES[5]}${LINES[1]} ${LINES[2]}/ >> ${LINES[2]}/$logfile
- echo "Rsync ${LINES[1]} TO ${LINES[2]} Read the log file: ${LINES[2]}/$logfile for details"
- echo " " >> ${LINES[2]}/$logfile
- echo "This Backup is made: `date`" >> ${LINES[2]}/$logfile
- echo
- echo " rsync done for $logfile @ `date`" >> $mainlogfile
-
- #calculate running-time
- time2=$(date +"%s")
- time21=$(date +"%T")
- diff=$(($time2-$time1))
- echo "$(($diff / 60)) minutes and $(($diff % 60)) seconds elapsed." >> ${LINES[2]}/$logfile
- done
- #write some info to mainlogfile
- time_main2=$(date +"%s")
- diff=$(($time_main2-$time_main1))
- echo "finisch a backup sequence @ `date`" >> $mainlogfile
- echo "$(($diff / 60)) minutes and $(($diff % 60)) seconds elapsed." >> $mainlogfile
- #CFG FILE LAYOUT
- #user@x.x.x.x:
- #/path/from
- #/path/to
- #/path/.ssh/id_rsa
- #/path/exclude.exl (use "exclude.exl" for defalt settings)
- #user@x.x.x.x:
- echo "-------------------------------------------------------------------------------------------"
- echo "end of backup script"
- echo "job done $(date)"
- echo "-------------------------------------------------------------------------------------------"
- scp -i ~/.ssh/id_rsa $mainlogfile root@10.0.4.1:/root/log/.
|