Linux crontab 是用来定期执行程序的命令。

crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。

java cron设置只执行一次 cron立即执行_任务计划

语法:
crontab [ -u user ] file

crontab [ -u user ] { -l | -r | -e }

-u 用户名 : 是指设定指定 用户的任务计划表,需要root身份来执行。不适用-u则代表设置当前用户。

-e : 执行文字编辑器来设定时程表。

-r : 删除目前的时程表

-l : 列出目前的时程表

例1:查看当前任务计划

crontab -l

java cron设置只执行一次 cron立即执行_任务计划_02

 

例2:删除全部任务

crontab -r

java cron设置只执行一次 cron立即执行_linux_03

如图,原先有一个任务计划,执行crontab -r之后任务已经不存在。

例3:添加一个新任务

crontab -e

命令执行会进入编辑器,第一次使用会让你选择使用的编辑软件,这里使用了vim。如下图:

java cron设置只执行一次 cron立即执行_java cron设置只执行一次_04

 输入一条任务计划,跟vim用法一样,按冒号进入命令行,wq保存并退出。

再使用crontab -l就能看到添加的任务了。

这里对任务计划格式稍作解释。

第一个*:代表分钟,输入数字(0-59),代表每个小时内的第几分执行;如果输入“*/n”,n代表数字,代表间隔n分钟执行一次;也可以并列输入多个数字,用逗号隔开,代表在1小时内的多个分钟执行。

第二个*:代表小时,输入数字(0-23),代表每天的第几个小时执行;如果输入“*/n”,n代表数字,代表间隔n小时执行一次;也可以并列输入多个数字,用逗号隔开,代表在1天内的多个小时执行。

第三个*:代表天,输入数字(1-31),代表每月的第几天执行;如果输入“*/n”,n代表数字,代表间隔n天执行一次;也可以并列输入多个数字,用逗号隔开,代表在1月内的多个天执行。

第四个*:代表月,输入数字(1-12),代表每年的第几个月执行;如果输入“*/n”,n代表数字,代表间隔n个月执行一次;也可以并列输入多个数字,用逗号隔开,代表在1年内的多个月执行。

第五个*:代表星期,输入数字(0-6),代表星期几执行,0代表星期日;

这5个参数z可以组合使用,如果是5个*,如“* * * * *”代表每分钟执行一次,它等效于“*/1 * * * *”


30 */2 * * * /sbin/service httpd restart 表示每2小时在第30分时重启httpd服务


0 0 * * 6 /sbin/service sshd stop 表示每周6的0点0分关闭sshd服务


0 8 * * 1 /sbin/service sshd start 表示每周1的8点0分启动sshd服务