为了防止操作失误或者系统软件出现崩溃导致的mysql数据库数据的丢失,通过每天定时备份数据库的数据,当数据库出现问题的时候可以方便的恢复数据。
linux crontab + shell 定时备份数据库的实现:
1.创建shell脚本cd /usr/local/
2.建立shell脚本目录mkdir shell
cd shell
3.建立shell脚本
通过mysqldump命令备份数据库数据到指定的目录vim mysqldump.sh#! /bin/bash
echo "mysqldump start ..."
mysqldump -uroot test > /usr/local/nginx/html/mysqldump/DB_`date +%Y_%m_%d_%H_%M_%s`.sql
#导出数据库结构mysqldump -uroot -d 数据库名> test.sql
#导出表结构mysqldump -uroot -d 数据库名 表名> test.sql
echo "mysqldump success ok !"
mysqldump(mysql备份命令) -uroot(指定用户名) -p123456(密码) test(指定数据库) > /usr/local/nginx/html/mysqldump/DB_`date +%Y_%m_%d_%H_%M_%s`.sql(指定数据库备份到的[网战目录]路径和带日期的文件名)
4.保存文件退出,运行脚本chmod +x mysqldump.sh #给脚本执行权限./mysqldump.sh
*运行脚本可能会报警告的错误,因为在脚本中使用了明文密码,但不影响脚本的执行。
mysqldump: [Warning] Using a password on the command line interface can be insecure.
解决方法:http://zixuephp.net/article-292.html
5.执行定时命令,运行脚本crontab -e0 */2 * * * /usr/local/shell/mysqldump.sh #每天每两小时运行一次备份shell脚本文件一次
保存脚本,查看定时命令的运行信息crontab -l
当数据库文件备份一段时,备份的文件越来越多,会占用一定的磁盘空间,这时可以清理一些几天前或一星期前的文件来节省空间,shell脚本批量删除几天前文件操作:http://zixuephp.net/article-323.html