当前位置 博文首页 > linux下自动备份MySQL数据并上传到FTP上的shell脚本

    linux下自动备份MySQL数据并上传到FTP上的shell脚本

    作者:admin 时间:2021-02-08 12:01

    复制代码 代码如下:

    #!/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
    js
    下一篇:没有了