crontab是循环执行的例行性工作调度,与atd不同.atd是单次执行的例行性工作调度。Linux系统上有非常多的例行性工作,因此cond服务是默认启动的。用户可以进行例行性工作,控制命令是crontab。
用户设置:
/etc/cron.allow
/etc/cron.deny
/etc/cron.allow比/etc/cron.deny优先级高,只需要使用一个文件即可。一般系统默认保留cron.deny,一个帐号一行。
纪录:
每当用户使用crontab这个命令来新建工作调度之后,该项工作就会被纪录到/var/spool/cron/里面,而且是以帐号来作为判别的。举例来说,test用户使用crontab后,他的工作会被记录到/var/spool/cron/test/里面
日志:
每当系统执行crontab时,会写入/var/log/cron里面
语法:
* * * * * user shell/command
分 时 日 月 周
0-59 0-23 1-31 1-12 0-7 用户 绝对路径脚本或是命令
路径:
crontab最容易出问题的地方就是PATH,所以注意写绝对路径。
另外/etc/crontab可以定义执行目录
配置方式:
一:crontab -e
此时会出现一个shell界面
0 5 * * * /home/test.sh
wq
写入工作调度,保存
二:写入配置文件
[root@iZm5e35vamxbcpstxvj2fhZ ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# 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
01 4 * * * root run-parts /etc/corn.daily
* 5 * * * root /home/test.sh
可以查看日志以确认工作正常执行