#!/bin/bash #Mysql autobackup shell # # #----------------set the mysql login parameters dbuser=root dbpasswd= dbserver=localhost dbname=fwserver2008 dbopt=--opt backupdir=/dbbackup/ #-----------------set the FTP paramters , 0 no send to a ftp server,1 send to a ftp server copytoftp=1 ftpserver=172.16.25.2 ftpuser=linux ftppasswd=123456 #----------------set the backpfile paramters fileprefix=fwserver dumpfilename=$backupdir$fileprefix`date +%F_%H%M%S`.sql newfile=$fileprefix-`date +%F_%H%M%S`.tar.gz keepdays=10 #------------------write the operater command to log file logfile=/var/log/_mysqlbackup.log logtmp=/var/log/_mybackup.tmp
#=============================================== if [ ! -d $backupdir ] then echo "$backupdir is not exist, then make ..." >> $logfile mkdir -p $backupdir fi echo "start====================================>">>$logfile echo "Beginning backup `date +%F %T`" >>$logfile echo "Delete $keepdays days ago files ..." >>$logfile find $backupdir -name $fileprefix* -mtime +$keepdays -fls $logtmp -exec rm {} ; echo "Deleted Backup file is :">>$logfile cat $logtmp >>$logfile echo "Delete old file Success!" >>$logfile if [ -f $backupdir$newfile ] then echo "$newfile backup exist, backup stop ..." >>$logfile else if [ -z $dbpasswd ] then mysqldump -u$dbuser -h$dbserver $dbopt $dbname >$dumpfilename else mysqldump -u$dbuser -p$dbpasswd -h$dbserver $dbopt $dbname >$dumpfilename fi tar czvf $backupdir$newfile $dumpfilename >>$logfile 2>1 echo "$backupdir$newfile Backup Success!" >>$logfile rm -fr $dumpfilename if [ $copytoftp = 1 ]; then if [ -z $ftpserver ];then echo "Ftp Server not set,Copy to Ftp Failed ..." >>$logfile exit 1 elif [ -z $ftpuser ];then echo "Ftp user not set, Copy to Ftp Failed ..." >>$logfile exit 2 elif [ -z $ftppasswd ]; then echo "Ftp password not set, Copy to Ftp Failed ..." >>$logfile exit 3 else echo "Start copy to Ftp server ...." >> $logfile ftp -i -n end_ftp open $ftpserver user $ftpuser $ftppasswd lcd $backupdir hash prompt put $newfile close bye end_ftp fi fi echo "End=======================================">>$logfile fi # the end of the auto backup script