linux之定时任务crontab命令
使用命令crontab -e
默认编辑当前用户的定时任务
使用命令crontab -l
查看当前用户的定时任务
使用命令crontab -e -u user1
编辑user1用户的定时任务
使用命令crontab -l -u user1
查看user1用户的定时任务
定时任务的格式 * * * * * command
例如:32 9 * * * sh /home/hadoop101/test.sh
表示每个月的每一天的9点32分执行一次test.sh脚本
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
minute: 第一个*表示分钟,可以是从0到59之间的任何整数。
hour: 第二个*表示小时,可以是从0到23之间的任何整数。
day: 第三个*表示日期,可以是从1到31之间的任何整数。
month: 第四个* 表示月份,可以是从1到12之间的任何整数。
week: 第五个*表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command: 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
【1】*
星号代表所有可能的值。例如分钟字段为*时,表示每一分钟;小时字段为*时表示每一小时;日字段为*时表示每一天;月字段为*时表示每一个月……
0 3 * * 5 sh test.sh
表示在每个月的每个周五的三点整执行test.sh这个脚本
* 3 * * 5 sh test.sh
表示在每个月的每个周五的三点的每一分钟均执行test.sh这个脚本
【2】,
用逗号隔开的值指定一个列表范围。
0 6,12,18 * * * sh test.sh
表示在每个月的每一天的6点、12点和18点分别执行一次test.sh脚本,所以一天一共执行3次。
【3】-
用中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”。
0 0-12 * * * sh test.sh
表示在每个月的每一天的0-12小时整均执行test.sh这个脚本,所以一天一共执行12次。
【4】/
用正斜线指定时间的间隔频率。
0 0-23/2 * * * sh test.sh
表示每个月每一天每隔两小时执行一次test.sh脚本,即分别在0时、2时、4时、6时……执行脚本,所以一天一共执行12次。
*/10 * * * * sh test.sh
表示每隔10分钟执行一次脚本,并不是指10分钟时执行,20分钟时执行,而是每隔10分钟执行一次,假如第一次执行时间为3分,则下一次执行时间为13分。
定时任务crontab的配置文件:/etc/crontab
限制使用crontab配置文件:/etc/cron.deny 在这个配置文件中的用户无法使用用户定时任务
定时任务存放目录:/var/spool/cron/ 所有用户的定时任务以用户名的形式存放在该文件夹下,所以使用crontab -e编辑定时任务实际上编辑的就是该文件夹下的对应用户的文件
查看crontab服务状态:/sbin/service crond status
[root@linuxforliuhj hadoop102]# ll /var/spool/cron/
total 4
-rw-------. 1 hadoop101 hadoop101 0 Oct 9 18:11 hadoop101
-rw-------. 1 hadoop102 hadoop102 89 Oct 9 18:12 hadoop102
-rw-------. 1 root root 0 Nov 25 22:53 root