我有一个场景,我需要根据日期执行 shell 脚本。这是代码:
cd /home/test/check
perl test.pl check.ini parameters
我只想在当天不是星期四时执行这两行,如果当天是星期四,则不应执行以下行。我怎样才能实现同样的目标我对 shell 脚本很陌生,感谢任何帮助。
答案1
用于date "+%u"
获取数字星期几(1 表示星期一)。
if [ $(date "+%u") != "4" ]; then
cd /home/test/check
perl test.pl check.ini parameters
fi
答案2
您可以使用crontab
在特定时间执行脚本。使用编辑 crontabcrontab -e
# Use the hash sign to prefix a comment
# +---------------- minute (0 - 59)
# | +------------- hour (0 - 23)
# | | +---------- day of month (1 - 31)
# | | | +------- month (1 - 12)
# | | | | +---- day of week (0 - 7) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed
#--------------------------------------------------------------------------
例如,除周四外,每天上午 11:59 运行。 :
59 11 * * 1,2,3,5,6,7 nohup /usr/local/bin/perl /home/test/check/perl.pl check parameters > /tmp/script.log 2>&1
答案3
它每周运行 6 天,并且是相当自我记录的。替换||如果您只想在星期四运行 1 天,则使用 && 。
cd /home/test/check
date | egrep '^Thu ' || perl test.pl check.ini parameters