学会自动备份MYSQL和WEB的数据
学会自动备份MYSQL和WEB的数据
Sandy由于个人的需求问题,MYSQL和WEB分开来备份。没特殊要求的也可以合在一个SH文档备份。
数据库备份脚本(1):#!/bin/bash#你要修改的地方从这里开始MYSQL_USER=root #mysql用户名MYSQL_PASS=e9china.net #mysql密码#你要修改的地方从这里结束#定义数据库的名字和旧数据库的名字DataBakName=Data_$(date +"%Y%m%d").tar.gzOldData=Data_$(date -d -5day +"%Y%m%d").tar.gz#删除本地3天前的数据rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gzcd /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.gzrm -rf /home/backup/*.sql.gzecho “Mysql备份结束”
数据库备份脚本(2)COO友情提供(选择性备份):
1 | #!/bin/bashcd /home/mysqlbakecho “You are In Backup Directory”mv backup* /home/oldmysqlbakecho “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-$Fileecho “Your Database Backup Successfully Completed” |
FTP备份脚本:#!/bin/bash#你要修改的地方从这里开始WEB_DATA=/home/wwwroot #要备份的网站数据,如果是使用lnmp安装包,则默认这个为网站目录#你要修改的地方从这里结束#定义web数据的名字和web数据的名字WebBakName=Web_$(date +%Y%m%d).tar.gzOldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz#删除本地3天前的数据/home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gzcd /home/backup#压缩网站数据tar zcf /home/backup/$WebBakName $WEB_DATAecho “web备份结束”
给予脚本运行的权限
1 | chmod 774 /root/mysqlbak.sh`或者`chmod +x /root/mysqlbak.sh |
利用系统crontab实现每天自动运行:
1 | crontab -e |
每天晚上3:30分备份数据库
1 | 30 3 * * * /root/mysqlbak.sh |
每个月1.10.30号备份一下WEB目录
1 | 45 4 1,10,30 * * /root/webbak.sh |
下一步将要实现利用rsync同步备份目录到另外一个服务器
