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

发布时间:2018-06-07 09:30:17编辑:丝画阁阅读(804)

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


由于个人的需求问题,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

每天晚上3:30分备份数据库

30 3 * * * /root/mysqlbak.sh

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

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

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

关键字