🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 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服务! ![](https://img.kancloud.cn/b3/78/b378f2ea8ee78d67f38529f636c5b99a_195x73.png) 然后去掉脚本中-p的这段代码: ## 去掉下面这段代码 ``` -p${db_password} ``` # 3.给脚本赋执行权限 ``` chmod u+x backup.sh ``` # 4.编写定时任务 ``` # 输入以下命令,出现一个界面 crontab -e # 在页面中输入定时执行的语句 00 3 * * * /www/sqlautobak/backup.sh ``` 可实现每天凌晨三点自动执行第二步编写的备份脚本,备份mysql指定数据库到/www/sqlautobak目录下,且只保留最近5天的数据库备份