当前位置:首页 » 好文分享 » 详情

    定时备份网站程序和MySQL数据库到FTP

    这个是脚本是我自己一直在用的,非常好用,定时把网站程序和网站数据库备份并上传到FTP,备份数据保存7天;当你经历过数据丢失,就知道数据备份的重要性。

    参数解释
    Backup_Home:设置本机备份文件的路径
    MySQL_Dump:MySql mysqldump导出工具路径
    Backup_Dir:网站程序路径
    Backup_Database:备份网站的数据库名
    MYSQL_UserName:数据库账户
    MYSQL_PassWord:数据库密码
    FTP_Host:ftp地址
    FTP_Username:FTP登陆账户
    FTP_Password:FTP登陆密码
    FTP_Dir:设置备份到ftp的路径

    先运行以下命令,免得报错。
    CentOS:yum install lftp  或  Debian/Ubuntu:apt-get install lftp

    复制以下内容另存为backup.sh 
    #!/bin/bash
    #server ip : 8.8.8.8
    #Funciont: Backup website and mysql database
    
    #IMPORTANT!!!Please Setting the following Values!
    
    Backup_Home="/home/wwwroot/"
    MySQL_Dump="/home/server/mysql/bin/mysqldump"
    ######~Set Directory you want to backup~######
    Backup_Dir=("/home/wwwroot/web1" "/home/www/web2")
    
    ######~Set MySQL Database you want to backup~######
    Backup_Database=("web1data" "web2data")
    
    ######~Set MySQL UserName and password~######
    MYSQL_UserName='root'
    MYSQL_PassWord='root'
    
    ######~Enable Ftp Backup~######
    Enable_FTP=0
    # 0: enable; 1: disable
    ######~Set FTP Information~######
    FTP_Host='8.8.8.8'
    FTP_Username='ftpuser'
    FTP_Password='ftppwd'
    FTP_Dir="/backupdir/"
    
    #Values Setting END!
    
    TodayWWWBackup=web-*-$(date +"%Y%m%d").tar.gz
    TodayDBBackup=db-*-$(date +"%Y%m%d").sql
    OldWWWBackup=web-*-$(date -d -7day +"%Y%m%d").tar.gz
    OldDBBackup=db-*-$(date -d -7day +"%Y%m%d").sql
    
    Backup_Dir()
    {
     Backup_Path=$1
     Dir_Name=`echo ${Backup_Path##*/}`
     Pre_Dir=`echo ${Backup_Path}|sed 's/'${Dir_Name}'//g'`
     tar zcf ${Backup_Home}web-${Dir_Name}-$(date +"%Y%m%d").tar.gz -C ${Pre_Dir} ${Dir_Name}
    }
    Backup_Sql()
    {
     ${MySQL_Dump} -u$MYSQL_UserName -p$MYSQL_PassWord $1 > ${Backup_Home}db-$1-$(date +"%Y%m%d").sql
    }
    
    if [ ! -f ${MySQL_Dump} ]; then 
     echo "mysqldump command not found.please check your setting."
     exit 1
    fi
    
    if [ ! -d ${Backup_Home} ]; then 
     mkdir -p ${Backup_Home}
    fi
    
    type lftp >/dev/null 2>&1 || { echo >&2 "lftp command not found. Install: centos:yum install lftp,debian/ubuntu:apt-get install lftp."; }
    
    echo "Backup website files..."
    for dd in ${Backup_Dir[@]};do
     Backup_Dir ${dd}
    done
    
    echo "Backup Databases..."
    for db in ${Backup_Database[@]};do
     Backup_Sql ${db}
    done
    
    echo "Delete old backup files..."
    rm -f ${Backup_Home}${OldWWWBackup}
    rm -f ${Backup_Home}${OldDBBackup}
    
    if [ ${Enable_FTP} = 0 ]; then
     echo "Uploading backup files to ftp..."
     cd ${Backup_Home}
     lftp ${FTP_Host} -u ${FTP_Username},${FTP_Password} << EOF
    cd ${FTP_Dir}
    mrm ${OldWWWBackup}
    mrm ${OldDBBackup}
    mput ${TodayWWWBackup}
    mput ${TodayDBBackup}
    bye
    EOF
    
    echo "complete."
    fi

    以上仅是Linux系统才可以使用。
    打赏
    X
    打赏方式:
    • 支付宝
    • 微信
    • QQ红包

    打开支付宝扫一扫
    日期:2018年02月01日 16:17:16 星期四   分类:好文分享   浏览(35515)
    本文地址:https://www.blogs.hk/post-3446.html   [百度已收录]
    声明:本页信息由网友自行发布或来源于网络,真实性、合法性由发布人负责,请仔细甄别!本站只为传递信息,我们不做任何双方证明,也不承担任何法律责任。文章内容若侵犯你的权益,请联系本站删除!
    版权所有:《博客之家
    文章标题:《定时备份网站程序和MySQL数据库到FTP
    除非注明,文章均为 《博客之家》 原创
    转载请注明本文短网址:https://www.blogs.hk/post-3446.html  [生成短网址]

    留言咨询

    自动获取QQ

    昵称

    邮箱

    网址

        站点统计

        • 收录网址:3370 个
        • 发布文章:3008 条
        • 在线人数:1人
        • 总访问量:270575063次
        • 本站运行:12年5月3天
        Copyright © 2025 博客之家 版权所有  
        關於本站免責聲明sitemap新站登錄