1、环境变量配置
这里使用MYSQL自带的备份命令mysqldump,所以首先保证你的服务器正确安装了MySQL数据库,然后配置了如下MySQL环境变量。
代码语言:javascript复制vim /etc/profile
追加一行,一般MySQL数据库默认安装路径都是/usr/local/mysql这个
export PATH=$PATH:/usr/local/mysql/bin
保存退出,然后刷新环境变量
代码语言:javascript复制 source /etc/profile
2、创建定时备份脚本
创建 /data/db_bak 目录
代码语言:javascript复制mkdir data
cd /data
mkdir db_bak
新建bak_mysql.sh 定时备份脚本(默认指定3天删除)
代码语言:javascript复制vim bak_mysql.sh
脚本内容如下:
代码语言:javascript复制#!/bin/bash
mysqldump -uroot -p12345678 agp | gzip > /data/db_bak/agp$(date %Y%m%d_%H%M%S).sql.gz
#!定时清理,只保留3天的数据库脚本
find /data/db_bak/ -mtime 3 -name "*.sql.gz" -exec rm -rf {} ;
保存退出,然后给脚本增加可执行权限
代码语言:javascript复制chmod u x bak_mysql.sh
手动执行确保脚本可以正常运行
代码语言:javascript复制./bak_mysql.sh
3、定时任务设置
代码语言:javascript复制yum install crontabs
编辑定时任务文件,增加MySQL定时备份脚本文件的执行
代码语言:javascript复制vim /etc/crontab
内容如下:这里先默认5分钟执行一次
*/5 * * * * /data/db_bak/bak_mysql.sh #每隔五分钟执行一次
30 23 * * * /data/db_bak/bak_mysql.sh #每天23:30执行一次
保存定时任务配置,并立即生效
代码语言:javascript复制crontab /etc/crontab
执行效果
4、Crontab参数说明
* * * * * command 分 时 日 月 周 命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令
脚本定时执行的案例
代码语言:javascript复制#每天的30:23 执行
30 23 * * * /data/db_bak/bak_mysql.sh
#每隔10分 执行
*/10 * * * * /data/db_bak/bak_mysql.sh
#每周一的 17:00 执行
0 17 * * 1 /data/db_bak/bak_mysql.sh
#8:02,11:02,14:02,17:02,20:02 执行
2 8-20/3 * * * /opt/script/backup.sh
文件定时的案例
代码语言:javascript复制#每一小时重启nginx
* */1 * * * /etc/init.d/nginx restart
#每晚的21:30重启 nginx
30 21 * * * /etc/init.d/nginx restart
#每月的4号与每周一到周三 的11点重启nginx
0 11 4 * mon-wed /etc/init.d/nginx restart
#每天18 : 00至23 : 00之间每隔30分钟重启nginx
0,30 18-23 * * * /etc/init.d/nginx restart