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

时间:2022-12-22 10:26:39
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/