备份思想:每天凌晨进行全备份, 保留最近一周的, 之前保留间隔10天的, 保留3个月以内的
创建 backup_mysql.sh 文件
mysqldump -h localhost -u root -p123 test > /opt/data/mysqlbak/test_`date +%Y%m%d`.sql
find /opt/data/mysqlbak/ -mtime +7 -name '*[1-9].sql' -exec rm -rf {} \;
find /opt/data/mysqlbak/ -mtime +92 -name '*.sql' -exec rm -rf {} \;
创建定时执行任务
crontab - e 命令编辑执行任务
0 4 * * * /home/backup_mysql.sh
wq 保存, 每天凌晨4点执行备份脚本
以下是 crontab 文件的格式:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
- minute:区间为0–59;
- hour:区间为0–23;
- day-of-month:区间为0–31;
- month:区间为1–12;1是1月,12是12月;
- Day-of-week:区间为0–6;周日是0。
除了数字还有以下几个特殊的符号需要特殊说明:
*
:代表所有的取值范围内的数字;
/
:代表每的意思,”*/5″表示每5个单位;
-
:代表从某个数字到某个数字;
,
:分开几个离散的数字。
以下举几个例子说明问题:
每五分钟执行 */5 * * * * /home/jelly/test.sh
每小时执行 0 * * * * /home/jelly/test.sh
每天执行 0 0 * * * /home/jelly/test.sh
每周执行 0 0 * * 0 /home/jelly/test.sh
每月执行 0 0 1 * * /home/jelly/test.sh
每年执行 0 0 1 1 * /home/jelly/test.sh
每天早上6点 0 6 * * * /home/jelly/test.sh
每两个小时 0 */2 * * * /home/jelly/test.sh
晚上11点到早上8点之间每两个小时
0 23-7/2 * * * /home/jelly/test.sh
1月1日早上4点
0 4 1 1 * /home/jelly/test.sh