cron小技巧
Cron daemon,是linux下用来周期性执行命令的守护进程。可以通过crontab命令列出和编辑用户的cron任务。
(1)cron任务的基本形式是:minute hour [day of month] month [day of week] command
cron任务执行时必须满足以下条件:分钟、小时和月份满足给定条件,并且day of month和day of week至少一个满足条件。
(2)在设置时间日期时,可以使用范围或者列表
比如以下命令会在每天0点到4点,8点到12点的1、2、5、9分钟执行command命令
1,2,5,9 0-4,8-12 * * * command
(3)在设置时间日期时,可以使用步长,步长仅对范围或者*有效
比如每5分钟执行command命令,可以
*/5 * * * * command
下面的命令会在第50、51、52、53、55、57、59分钟执行command命令
50,51,52,53-59/2 * * * * command
(4)month或者day of week域,可以使用星期或者月份的前三个字母,大小写都可以,但是此时不能使用范围或者列表。比如
* * * * Mon command
(5)在第6个域,也就是命令部分,%具有特殊含义,%之前的部分会被SHELL执行,%之后的部分将会作为前面部分的标准输入。如果确实需要使用%,请用\进行转义或者使用单引号(即\%或者'%',双引号"%"是无效的)。
(6)每隔一周执行一个任务,这样的任务cron是不支持的。但是我们可以通过一个trick实现,其它的每N天(周,年)也可以用类似的方式实现
每偶数周执行(注意%之前的\),
* * * * * expr `date +\%W` \% 2 >/dev/null || command
每奇数周执行(最后的true命令,是为了避免cron在偶数周的时候提示非0返回码),
* * * * * expr `date +\%W` \% 2 >/dev/null && command  || true
(7)每90分钟执行命令,一个cron任务是不够的
0 0,3,6,9,12,15,18,21 * * * <commands>
30 1,4,7,10,13,16,19,22 * * * <commands>
(8)不同的Unix系统提供的cron功能略有差别,如果你使用的不是Linux,请man 5 crontab
参考资料: [1] man 5 crontab [2] Running a cron job fortnightly [3] Run a cron every 90 minutes
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号