crontab命令是Linux操作系统中实现任务计划相关功能的命令。它包括了任务计划的制定、删除、查看等。其中常用的选项有:
1、-u :指定某个用户,不加-u选项则为当前用户;
2、-e :制定计划任务;
3、-l :列出计划任务;
4、-r :删除计划任务。
举例:
crontab -e
输入该命令后,会进入一个vim编辑界面,如下:
它实际上是使用vim工具打开了crontab的配置文件,敲击i键,编辑内容如下:
按下Esc键,输入:wq,保存并退出,即可完成一个计划任务的添加。没有指定u参数,默认执行用户为当前用户hadoop。而这个命令的含义,则是:在3月28日15点40分,这天正好是周一,将"ok,it is done!"写入/home/hadoop/cron.log文件(覆盖写入,不是追加)。很明显,前面数字的顺序则是分、时、日、月、周,后面接的是命令。
我们看下计划执行情况,如下:
果然是到期执行了!
crontab -l
另外,也可以设置每隔几分钟、小时、天,固定每天几点几分执行等任务,比如,我们加入如下任务:
* * * * * echo `date` > /home/hadoop/cron.log
执行结果如下:
它会每隔1分钟,将date命令的输入结果,即对应时间,覆盖写入/home/hadoop/cron.log文件!
还有一些其他例子,如下:
05 21 * * * command
每晚21:05执行命令
05 21 1,5,23 * * command
每月1、5、23日晚上21:05执行命令。
05 21 * * 6,0 command
每周六、周日晚上21:05执行命令。(周日至周六表示为0-6)
0,30 16-22 * * * command
每天16:00至22:00之间每隔30分钟执行命令。
0 23 * * 6 command
上面的例子表示每星期六的11 : 00 pm执行命令。
* */1 * * * command
每一小时执行命令。
* 23-7/1 * * * command
晚上11点到早上7点之间,每隔一小时执行命令。
0 11 4 * mon-wed command
每月的4号与每周一到周三的11点执行命令。
0 4 1 jan * command
一月一号的4点执行命令。
不再一一举例,读者可自行测试!
删除 crontab -r
带用户的编辑 crontab -u hadoop -e
带用户的查找 crontab -l -u hadoop
带用户的删除 crontab -r -u hadoop