学会自动备份MYSQL和WEB的数据

2016年10月06日 693点热度 0人点赞 0条评论

由于个人的需求问题,MYSQL和WEB分开来备份。没特殊要求的也可以合在一个SH文档备份。

数据库备份脚本(1):
#!/bin/bash
#你要修改的地方从这里开始
MYSQL_USER=root #mysql用户名
MYSQL_PASS=e9china.net #mysql密码
#你要修改的地方从这里结束
#定义数据库的名字和旧数据库的名字
DataBakName=Data_$(date +"%Y%m%d").tar.gz
OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz
#删除本地3天前的数据
rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz
cd /home/backup
#导出数据库,一个数据库一个压缩文件
for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`; do
(/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)
done
#压缩数据库文件为一个文件
tar zcf /home/backup/$DataBakName /home/backup/*.sql.gz
rm -rf /home/backup/*.sql.gz
echo “Mysql备份结束”

数据库备份脚本(2)COO友情提供(选择性备份):

#!/bin/bash
cd /home/mysqlbak
echo “You are In Backup Directory”
mv backup* /home/oldmysqlbak
echo “Old Databases are Moved to oldbackup folder”
Now=$(date +”%d-%m-%Y--%H:%M:%S”)
File=backup-$Now.sql.gz
#格式 -u用户 -p密码 数据库 |gzip -9 > 数据库-$File
/usr/bin/mysqldump -uuser -ppasswd database |gzip -9 > database-$File
/usr/bin/mysqldump -uuser -ppasswd database |gzip -9 > database-$File
/usr/bin/mysqldump -uuser -ppasswd database |gzip -9 > database-$File
/usr/bin/mysqldump -uuser -ppasswd database |gzip -9 > database-$File
echo “Your Database Backup Successfully Completed”

FTP备份脚本:
#!/bin/bash
#你要修改的地方从这里开始
WEB_DATA=/home/wwwroot #要备份的网站数据,如果是使用lnmp安装包,则默认这个为网站目录
#你要修改的地方从这里结束
#定义web数据的名字和web数据的名字
WebBakName=Web_$(date +%Y%m%d).tar.gz
OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz
#删除本地3天前的数据
/home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gz
cd /home/backup
#压缩网站数据
tar zcf /home/backup/$WebBakName $WEB_DATA
echo “web备份结束”

给予脚本运行的权限

chmod 774 /root/mysqlbak.sh或者chmod +x /root/mysqlbak.sh

利用系统crontab实现每天自动运行:

crontab -e

每天晚上330分备份数据库

30 3 * * * /root/mysqlbak.sh

每个月1.10.30号备份一下WEB目录

45 4 1,10,30 * * /root/webbak.sh

下一步将要实现利用rsync同步备份目录到另外一个服务器

实用RSYNC配置脚本 VPS增量备份

 

qrsbox 图形界面同步上传工具

Sandyliao

保持飢渴好吃的性格、維持好攝之徒的愛好、繼續在三流的技術下活著!

文章评论

您需要 登录 之后才可以评论