哈特中尉's Blog

不会写代码的司机不是好厨师!

centos7 crontab定时任务

编写要执行的脚本back.sh

1
2
3
#!/bin/sh
date=$(date +%Y%m%d%H%M)
mysqldump -h127.0.0.1 data11 > $date.sql

使脚本可以执行

1
chmod +x back.sh

添加 crontab任务

1
crontab -e

内容如下:
每分钟执行一次~/back.sh文件

1
* * * * * ~/back.sh

禁止产生邮件

1
crontab -e

第一行加入:

1
MAILTO=""

安装crond服务(可选)

1
2
yum install vixie-cron
yum install crontabs

说明:
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

启动cron服务

cron 是linux的内置服务,但它不自动起来。

1
2
3
4
5
6
7
8
9
10
11
12
#启动服务
/sbin/service crond start
#关闭服务
/sbin/service crond stop
#重启服务
/sbin/service crond restart
#重新载入配置
/sbin/service crond reload
#查看crontab服务状态
service crond status
#手动启动crontab服务
service crond start

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
编辑root下的定时任务
crontab -u root -e

每天早上6点追加一条字符串到一个文本。
6 * * * echo "Good morning." >> /tmp/test.txt

每两个小时追加一条字符串一个文本。
*/2 * * * echo "Have a break now." >> /tmp/test.txt

晚上11点到早上8点之间每两个小时,早上八点
23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
11 4 * 1-3 command line

1月1日早上4点
4 1 1 * command line

每月每天每小时的第 0 分钟执行一次 /bin/ls
* * * * /bin/ls

在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup
*/20 6-12 * 12 * /usr/bin/backup

周一到周五每天下午 5:00 寄一封信给 alex_mail_name :
17 * * 1-5 mail -s "hi" alex_mail_name < /tmp/maildata

每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
0-23/2 * * * echo "haha"

晚上11点到早上8点之间每两个小时,早上8点,显示时间
23-7/2,8 * * * date