crontab+shell脚本实现定时备份mysql数据库
Posted 怀念感觉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了crontab+shell脚本实现定时备份mysql数据库相关的知识,希望对你有一定的参考价值。
1.创建shell脚本
bash
cd /usr/local/
2.建立shell脚本目录
bash
mkdir shell
cd shell
3.建立shell脚本
通过mysqldump命令备份数据库数据到指定的目录
bash
vim mysqldump.sh
bash
mysqldump(mysql备份命令) -uroot(指定用户名) -p123456(密码) test(指定数据库) > /usr/local/nginx/html/mysqldump/DB_`date +%Y_%m_%d_%H_%M_%s`.sql(指定数据库备份到的[网战目录]路径和带日期的文件名)
4.保存文件退出,运行脚本
bash
chmod +x mysqldump.sh #给脚本执行权限
bash
./mysqldump.sh
*运行脚本可能会报警告的错误,因为在脚本中使用了明文密码,但不影响脚本的执行。
mysqldump: [Warning] Using a password on the command line interface can be insecure.
解决方法:http://zixuephp.net/article-292.html
5.执行定时命令,运行脚本
bash
crontab -e
bash
0 */2 * * * /usr/local/shell/mysqldump.sh #每天每两小时运行一次备份shell脚本文件一次
保存脚本,查看定时命令的运行信息
bash
crontab -l
之前我们通过shell脚本定期备份了数据库的数据文件,保证了数据库数据的安全,当数据库文件备份的文件会越来越多的时候
,会占用磁盘很多空间
,同时也没有必要。那么就得用到自动删除
7天前或N天前的文件了。
mysql定时自动备份数据库文件方法:http://zixuephp.net/article-291.html
删除多久之前的数据库文件shell脚本代码,通过find命令
和rm命令
实现:
bash
#! /bin/bash
find /usr/local/nginx/html/mysqldump -mtime +7 -name "*.sql" -exec rm -rf {} \;
find命令查找
对应文件夹得所有文件,并通过-mtime +7
匹配7天前的文件所有.sql后缀的文件,并把结果交给exec
执行rm
删除所有匹配
的文件。
以上是关于crontab+shell脚本实现定时备份mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章