06
2017
01

Linux中的crontab命令如何使用

大家都知道在window系统中,有计划任务的功能,那么在Linux系统上,有没有这项功能呢,答案是肯定的,这么牛逼的系统怎么能没有呢,好,废话不多说,我们来学习一下在Linux上如何使用计划任务功能。

首先需要准备的工具:putty

用到的Linux命令:crontab

crontab命令的基本格式如下:
* * * * * command
分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

crontab文件的一些例子:

20 22 * * * /etc/init.d/nginx restart
上面的例子表示每晚的22:20重启nginx。

55 5 1,10,20 * * /etc/init.d/nginx restart
上面的例子表示每月1、10、20日的5 : 55重启nginx。

30 2 * * 6,0 /etc/init.d/nginx restart
上面的例子表示每周六、周日的2 : 30重启nginx。

0,30 18-23 * * * /etc/init.d/nginx restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启nginx。

45 23 * * 6 /etc/init.d/nginx restart
上面的例子表示每星期六的11 : 45 pm重启nginx。

* */1 * * * /etc/init.d/nginx restart
每一小时重启nginx

* 23-6/1 * * * /etc/init.d/nginx restart
晚上11点到早上6点之间,每隔一小时重启nginx

0 12 1 * mon-wed /etc/init.d/nginx restart
每月的1号与每周一到周三的12点重启nginx

0 3 2 jan * /etc/init.d/nginx restart
一月二号的3点重启nginx


10 */1 * * * curl       运行结果如下

00:10:01
01:10:01
02:10:01
03:10:01
04:10:01
05:10:01
06:10:01
07:10:01
08:10:01
09:10:01
10:10:01
11:10:01
12:10:01
13:10:01
14:10:01
15:10:01
16:10:01
17:10:01
18:10:01
19:10:01
20:10:01
21:10:01
22:10:01
23:10:01


2020年2月29日更新

==================

在一次实际的项目中,写了如下的定时任务写法:

* */1 * * * curl http://www.baidu.com/

这是错误的每隔一小时执行一次,实际上每分钟执行一次


真正的每隔一小时、每隔二小时执行的定时任务应该如何写呢!

*/60  * * * * #每60分钟即每小时执行一次
*/120 * * * * #每120分钟即每二小时执行一次



来看看具体操作

=======================================

root身份登录到命令行,可以用putty

输入crontab -e

按下a键进入到编辑模式

输入 0 */1 * * * curl http://www.baidu.com/

同时按下ctrl+c退出编辑模式

按下shift+: 输入wq 退出 crontab

=======================================

这样就会在你的系统(/var/spool/cron/)下生成任务文件,一般还是建议大家使用 crontab -e 来编辑,这样系统也会帮着检查我们配置的脚本语法。

记得保存好之后要重启:service crond restart


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。