zoukankan      html  css  js  c++  java
  • centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾

    centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾


    系统:centos6.5


    1.创建脚本目录
    mkdir -p /usr/local/sh/
    创建备份web文件存放目录
    mkdir -p /data/backup/www/


    创建备份db文件存放目录
    mkdir -p /data/backup/db/


    授权backup用户对所有数据库的操作权限(注意用来备份mysql数据库)
    GRANT ALL PRIVILEGES ON *.* TO 'backup'@'localhost' IDENTIFIED BY 'pass';


    2.编辑备份的脚本文件
    vim /data/scripts/backup-web-db.sh


    #!/bin/bash
    #需备份的站点目录
    Website_Dir1=www.chinasoft.com
    Website_Dir2=www.yayachinasoft.com


    #数据库备份用户名密码
    MYSQL_UserName=backup
    MYSQL_PassWord=pass
    #需要备份的数据名
    Backup_Database_Name1=yunva
    Backup_Database_Name2=yayasdk


    #FTP服务器信息
    FTP_HostName=ftp_ip
    FTP_UserName=web-backup
    FTP_PassWord=pass
    FTP_BackupDir=website-db-backup/yayachinasoft-yayachinasoft/


    #Values Setting END!


    #备份文件名
    TodayWWWBackup=*-$(date +"%Y%m%d").tar.gz
    TodayDBBackup=*-$(date +"%Y%m%d").sql
    OldWWWBackup=*-$(date -d -3day +"%Y%m%d").tar.gz
    OldDBBackup=*-$(date -d -3day +"%Y%m%d").sql


    #备份站点源码
    tar -zcf /data/backup/www/$Website_Dir1--$(date +"%Y%m%d").tar.gz -C /var/www/web $Website_Dir1
    tar -zcf /data/backup/www/$Website_Dir2--$(date +"%Y%m%d").tar.gz -C /var/www/web $Website_Dir2


    #备份数据库
    mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name1 > /data/backup/db/$Backup_Database_Name1-$(date +"%Y%m%d").sql
    mysqldump -u$MYSQL_UserName -p$MYSQL_PassWord $Backup_Database_Name2 > /data/backup/db/$Backup_Database_Name2-$(date +"%Y%m%d").sql


    #备份配置文件
    #cp /etc/php.ini /tmp/conf/php
    #cp -r /etc/ningx/*  /tmp/conf/nginx


    #删除旧的备份文件
    rm -f /data/backup/www/$OldWWWBackup
    rm -f /data/backup/db/$OldDBBackup


    #上传备份文件夹到FTP服务器
    cd /data/backup/


    lftp $FTP_HostName -u $FTP_UserName,$FTP_PassWord << EOF
    cd /$FTP_BackupDir/www
    mrm $OldWWWBackup
    mput www/$TodayWWWBackup
    cd /$FTP_BackupDir/db/
    mrm $OldDBBackup
    mput db/$TodayDBBackup
    bye
    EOF


    3.添加脚本执行权限
    chmod +x /data/scripts/backup-web-db.sh


    4.添加计划任务:
    每天凌晨2点执行备份任务
    crontab -e


    #backup-web-db
    00 02 * * * /bin/bash /data/scripts/backup-web-db.sh >/dev/null 2>&1


    重启生效
    systemctl restart crond

    公司内部FTP服务;


    调试:
    手动测试ftp是否能够连接
    lftp ftp_ip -u web-backup,pass


    手动调试程序是否正常执行:
    sh -x /data/scripts/backup-web-db.sh


    FTP_HostName=ftp_ip
    FTP_UserName=web-backup
    FTP_PassWord=pass
    FTP_BackupDir=website-db-backup/yayachinasoft-yayachinasoft/
  • 相关阅读:
    学习进度(6)
    学习进度(5)
    学习进度(4)
    学习进度(第十周)
    学习进度(第九周)
    关于返回一个整数数组中最大子数组的和的问题(续03)
    学习进度(第八周)
    代码大全阅读笔记03
    NABCD分析——生活日历
    学习进度(第七周)
  • 原文地址:https://www.cnblogs.com/reblue520/p/6239717.html
Copyright © 2011-2022 走看看