提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
1.linux的cron服务相关命令
service crond status # 查看服务开启的状态
service crond start # 开启cron服务
service crond stop # 关闭cron服务
service crond restart # 重启cron服务
service crond reload # 重新加载定时任务列表
chkconfig crond on # 设置开启cron服务开机自启
chkconfig crond off # 设置关闭cron服务开机自启
2.备份脚本
#!/bin/bash
date=`date +%Y%m%d%H%M` # 年月日时分
database=z-spring-boot # 数据库名称
db_username=root # 数据库的用户名
db_password="123456" # 数据库的登录密码
backup_path=/www/sqlautobak # 备份路径
# backup command
# -R:(–routines:导出存储过程以及自定义函数)
# -E:(–events:导出事件)
# --opt:激活了Mysqldump命令的quick,add-drop-table,add-locks,extended-insert,lock-tables参数(通过--opt参数在使用Mysqldump导出Mysql数据库信息时不需要再附加上述这些参数)
/usr/bin/mysqldump -u${db_username} -p${db_password} -h 127.0.0.1 -R --opt ${database} | gzip > ${backup_path}\/${database}_${date}.sql.gz
# 备份最近五天的数据
find ${backup_path} -mtime +5 -name "${database}_*.sql.gz" -exec rm -f {} \;
脚本编写完成后,授权成功后,可以直接执行,测试一下脚本是否有问题。
可能会报错:
mysqldump: [Warning] Using a password on the command line interface can be insecure.
解决方法:
修改MySQL的配置文件,my.conf文件(在/etc目录下)
加上用户名,密码!然后保存,重启MySQL服务!
然后去掉脚本中-p的这段代码:
# 去掉下面这段代码
-p${db_password}
3.给脚本赋执行权限
chmod u+x backup.sh
4.编写定时任务
# 输入以下命令,出现一个界面
crontab -e
# 在页面中输入定时执行的语句
00 3 * * * /www/sqlautobak/backup.sh
可实现每天凌晨三点自动执行第二步编写的备份脚本,备份mysql指定数据库到/www/sqlautobak目录下,且只保留最近5天的数据库备份