【发布时间】:2011-08-10 15:39:16
【问题描述】:
基本上,我想在每个月的第一个、第二个、第四个,如果有的话,在每个月的第五个星期五运行一份工作。或者换句话说,除了第三个星期五之外的所有星期五。
编辑:这更面向 java,无法访问 bash 环境。
【问题讨论】:
-
您能描述一下您正在运行的系统类型吗?如果您可以访问 cron,则很可能您可以访问 shell,并且可以编写一个 sh 脚本来执行此操作。
标签: cron
基本上,我想在每个月的第一个、第二个、第四个,如果有的话,在每个月的第五个星期五运行一份工作。或者换句话说,除了第三个星期五之外的所有星期五。
编辑:这更面向 java,无法访问 bash 环境。
【问题讨论】:
标签: cron
您可以在脚本中手动检查它:
date "%u"
为您提供星期几(与 cron 中的 dow 字段相同)
要获得每个月的周数,您必须做一些时髦的事情。
date +"%V"
给你一个月的星期,所以你必须看看
x=`date +"%V"`
y=`date +"%V" -d $(date +"%Y%m01")`
week_of_month=$((x-y))
week_of_month 从 0 开始,因此您需要检查它是否不是 2。
因此,在您的 cron 中,您将在每个星期五运行脚本,并在脚本顶部放置一个检查:
x=`date +"%V"`
y=`date +"%V" -d $(date +"%Y%m01")`
week_of_month=$((x-y))
if [ "$week_of_month" == "2" ]; then
echo "Will not run second friday of the month"
exit;
fi
【讨论】: