如何在本月的最后一个月运行crontab?

时间:2011-03-27 08:11:41

标签: crontab

我需要crontab运行一个脚本,该脚本在本月的最后一秒将信息从mysql中的表传输到另一个表。 (本月最后一天的最后一秒)。

crontab执行的内容是什么?

谢谢。

2 个答案:

答案 0 :(得分:2)

不确定这是否可以通用方式完成,因为该月的最后一天会有所不同,据我所知,crontab语法不为该用例提供任何内容。

您可能需要为自己找出正确的日期,并将单个作业(包括完整日期和时间,即每年12个)添加到crontab。

但首先你需要做什么?这听起来有点像“气味”,因为如果你在最后一秒开始,你就不能真正依赖于月底之前完成的任何工作。是否会在每个月的第一天0:00执行它并不容易?

在Serverfault上的this answer被盗:

  

0 0 1 * * / usr / bin / foo

答案 1 :(得分:0)

这将为您提供您正在寻找的东西(一分钟 - 而不是第二分钟)。只需调整我提到的crontab时间为59 23(http://sudobash.net/?p=424

的Cron:

2 0 * * * /usr/bin/last-day-of-the-month.sh

脚本:

#!/usr/bin/bash
# last-day-of-the-month.sh
# By: Scott Rowley
# http://www.sudobash.net/
#########################################

TODAY=`/usr/local/bin/date +%d`
TOMORROW=`/usr/local/bin/date +%d -d "1 day"`

# See if tomorrow's day is less than today's
if [ $TOMORROW -lt $TODAY ]
 then
  echo "Today is the last day of the month, running code..."
  /run/your/code
fi

exit