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

时间:2021-06-14 00:28:50

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服务;

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

调试:

手动测试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/