自动备份MySQL数据并上传到FTP上shell脚本
文章录入:浣花溪 责任编辑:snow 更新时间:2010-6-23 8:47:35 103
【字体:小 大】
Linux自动备份MySQL数据库并上传到FTP服务器上shell脚本
#!/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 ]thenecho "$backupdir is not exist, then make ..." >> $logfilemkdir -p $backupdirfiecho "start====================================>">>$logfileecho "Beginning backup `date '+%F %T'`" >>$logfileecho "Delete $keepdays days ago files ..." >>$logfilefind $backupdir -name $fileprefix* -mtime +$keepdays -fls $logtmp -exec rm {} /;echo "Deleted Backup file is :">>$logfilecat $logtmp >>$logfileecho "Delete old file Success!" >>$logfileif [ -f $backupdir$newfile ]thenecho "$newfile backup exist, backup stop ..." >>$logfileelseif [ -z $dbpasswd ]thenmysqldump -u$dbuser -h$dbserver $dbopt $dbname >$dumpfilenameelsemysqldump -u$dbuser -p$dbpasswd -h$dbserver $dbopt $dbname >$dumpfilenamefitar czvf $backupdir$newfile $dumpfilename >>$logfile 2>&1echo "$backupdir$newfile Backup Success!" >>$logfilerm -fr $dumpfilenameif [ $copytoftp = 1 ]; thenif [ -z $ftpserver ];thenecho "Ftp Server not set,Copy to Ftp Failed ..." >>$logfileexit 1elif [ -z $ftpuser ];thenecho "Ftp user not set, Copy to Ftp Failed ..." >>$logfileexit 2elif [ -z $ftppasswd ]; thenecho "Ftp password not set, Copy to Ftp Failed ..." >>$logfileexit 3elseecho "Start copy to Ftp server ...." >> $logfileftp -i -n <>$logfilefi# the end of the auto backup script