crontab每月最后一天执行

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               


如何设定crontab在每月最后一天执行一种方法:
for Linux
 0 8 28-31 * * [ `date -d tomorrow +\%e` -eq 1 ] && (shell script)
 for other Unix,BSD
 0 8 28-31 * * [ `echo \`cal\` | awk '{print $NF}'` -eq 1 ] && (shell script)

另一种方法:
 单独靠crontab判断比较复杂,所以把判断部分写到执行脚本中
#!/bin/bash
 today=`date +%d`
 last_day=`cal | xargs | awk '{print $NF}'`
 if [ "$today" != "$last_day" ];then  
  exit 1
 fi
 ....  # other codes start from here


   通过脚本实现的:
crontab里设定一条:
0 12 28-31 * * sh /tmp/start.sh
start.sh 脚本如下:
******************************************************************************
#!/usr/bin/ksh
#this script is used to start the xxx in the last day of every month
ym=`date +%m" "%Y`
if [ `date +%d` = `cal $ym|xargs|awk '{print $NF}'` ]
then
sh yourscripts
fi
********************************************************************************

     原理是每月的最后几天(28号到31号)定时执行脚本start.sh来判断当天是否是本月最后一天,如果是执行 yourscripts,不是则退出。

这是五年前为了完成一个特定审计而研究的,当时也是必须在每月的最后一天执行。希望今天仍旧能够帮到你:)


详细请参考:http://www.codesky.net/article/201109/133201.html

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值