Linux CRONTAB

Crontab是什么

Crontab是一个用于设置周期性被执行的任务的工具。
被周期性执行的任务:Cron Job
周期性执行的任务列表:Cron Table

Crontab的使用

service crond status 查看crontab的状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[CaseZheng@home ~]$ service crond status
Redirecting to /bin/systemctl status crond.service
crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 四 2017-06-29 21:26:55 CST; 36min ago
Main PID: 921 (crond)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/crond.service
└─921 /usr/sbin/crond -n

6月 29 21:26:55 home systemd[1]: Started Command Scheduler.
6月 29 21:26:55 home crond[921]: (CRON) INFO (Syslog will be used instead of sendmail.)
6月 29 21:26:55 home crond[921]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 81% if used.)
6月 29 21:26:55 home crond[921]: (CRON) INFO (running with inotify support)
6月 29 22:01:01 home CROND[3867]: (root) CMD (run-parts /etc/cron.hourly)
6月 29 22:01:01 home run-parts[3870]: (/etc/cron.hourly) starting 0anacron
6月 29 22:01:01 home anacron[3878]: Anacron started on 2017-06-29

service crond 可以产看crontab支持的命令

1
2
[CaseZheng@home ~]$ service crond
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

service crond start 启动crontab

service crond stop 停止crontab

crontab -e 编辑当前用户的cron table文件

Crontab的基本组成

配置文件 使用文件方式设定定时任务
系统服务 CROND 每分钟从配置文件中刷新定时任务
配置工具 crontab用于调整定时任务
crontab的基本组成

Crontab的配置文件格式

Crontab的配置文件格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
每晚21:30重启apache
30 21 * * * service httpd restart

每月1,10,22日的4:45重启apache 多个时间用逗号分隔
45 4 1,10,22 * * service httpdd restart

每月1到10日的4:45重启apache 连续时间用-连接
45 4 1-10 * * service httpd restart

每隔两分钟重启apache服务器
*/2 * * * * service httpd restart
1-59/2 * * * * service httpd restart

晚上11点到早上7点之间,每隔一小时重启apache
0 23-7/1 * * * service httpd restart

每天18:00到23:00之间每隔30分钟重启apache
0,30 18-23 * * * service httpd restart
0-59/30 18-23 * * * service httpd restart

Crontab的配置文件格式

Crontab的使用

1
2
3
4
5
查看crontab的帮助
crontab --help

crontab -l 查看当前用户的Cron table
crontab -e 编辑当前用户的Cron table

Crontab的配置文件

全局(系统)配置文件 /etc/crontab

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@home CaseZheng]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
*/1 * * * * root echo "First System Crontabs"

“First System Crontabs”可以在/var/log/cron中查看

Crontab的日志

crontab的日志保存在/var/log/cron

Crontab的常见错误