linux自动定时备份web程序和mysql数据库
前些天受朋友说linux定时备份不知道怎么搞,叫帮忙处理一下。由于这段时间正闲着,所以也就欣然答应。由于朋友对linux不懂也希望我将操作的过程记录下来,也就是越详细越好。所以写得比较$%^&*。本以为半个小时或者一个小时可以搞好,谁不知整整搞了一天。原因在哪呢?这里也顺便吐槽一下,首先问web存放在什么地方?不知,给了个ftp。然后进去一看,各种压缩包,各种目录备份,混乱不堪,为了防止磁盘被撑爆,所以一个个目录确认,哪些目录是要的哪些是不要的,然后一个个删掉。还有mysql数据库,问用的哪个?不知,又是一通的等,一遍遍地确认。好吧,这也都算了。等我搞好了,然后说每天检查一下。谁不知,程序猿最怕发生的事情义无意外地发生了。目录搞错,这不等于万恶的改需求吗?脑子瞬间都是各种@!#$%^&*(!@#$%^^&*()。好吧,不接都已经接了认了吧。好了吐槽至此,不废话入正题。
需求:
1、每天定时备份web程序和mysql数据库
2、web程序、web日志和mysql数据库备份均保留7天
说明:
web目录:/chinasofti/www/bbswebdir
web日志目录:/chinasofti/www/bbswebdir/httplogs
日志文件名格式:myweb.com-access_log_YYYYMMDD,myweb.com-error_log_YYYYMMDD,如myweb.com-access_log_20150508,myweb.com-error_log_20150508
备份脚本存放目录:/chinasofti/wwwbakscript/
备份文件存放目录:/chinasofti/wwwbakdir/
web备份文件名格式:bbs.myweb.com_YYYYMMDD,如bbs.myweb.com_20150508.tar.gz
mysql备份文件格式:数据库名_$(date +%Y%m%d).sql.gz
写在前面:务必注意各个目录的说明,运用是注意修改。完全不改是用不了的。注意各个目录和文件的对应关系。
淡绿色底的为linux命令,淡黄色底的为shell脚本内容,其他的为备注说明。
操作步骤
root用户登陆后
1、切换目录
cd /chinasofti/wwwbakscript
2、创建备份脚本
vi mywebbak.sh
按i然后输入以下内容
#!/bin/bash
#backup /chinasofti/www/bbswebdir and database
###################切换到web目录#################
cd /chinasofti/www/bbswebdir
###################删除web日志#################
rm -f ./httplogs/myweb.com-access_log_$(date +%Y%m%d --date='7 days ago')
rm -f ./httplogs/myweb.com-error_log_$(date +%Y%m%d --date='7 days ago')
###################删除备份文件#################
rm -f /chinasofti/wwwbakdir/bbs.myweb.com_$(date +%Y%m%d --date='7 days ago').tar.gz
###################备份web程序#################
tar -zcf /chinasofti/wwwbakdir/bbs.myweb.com_$(date +%Y%m%d).tar.gz ./* ./.[!.]*
###################删除备份数据库####################
rm -f /chinasofti/wwwbakdir/数据库名_$(date +%Y%m%d --date='7 days ago').sql.gz
###################备份数据库####################
mysqldump -u数据库账号 -p"数据库密码" 数据库 | gzip >/chinasofti/wwwbakdir/数据库名_$(date +%Y%m%d).sql.gz
#################导出单个表数据和结构############
#mysqldump -u账号 -p 数据库名 表名 > /root/XXXX.sql
添加完成后,按键盘右上角的“esc”键,然后输入英文的冒号加x(:x),回车完成。
注意:红色字体部分为路径(注意修改),品红色部分为文件名(注意修改)。
4、添加可执行权限
chmod +x mywebbak.sh
5、定时执行
crontab -e
按i编辑,添加运行的脚本和时间。如:
0 1 * * * /chinasofti/wwwbakscript/mywebbak.sh
则为每天凌晨1点执行,/chinasofti/wwwbakscript/mywebbak.sh这个shell脚本。
修改完成后,按键盘右上角的“esc”键,然后输入英文的冒号加x(:x),回车完成。
6、每天检查脚本是否正常运行。
其它相关文章:
扫描公众号,关注更多信息
---------------------------------------------------------------------------------我是分割线--------------------------------------------------------------------------to be a better me, talk is cheap show me the code
版权所有,转载请注明原文链接。
文中有不妥或者错误的地方还望指出,以免误人子弟。如果觉得本文对你有所帮助不妨【推荐】一下!如果你有更好的建议,可以给我留言讨论,共同进步!
再次感谢您耐心的读完本篇文章。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------