【问题标题】:How to run python script only once in a specific day of the week in bash如何在bash中一周中的特定日期只运行一次python脚本
【发布时间】:2015-12-16 19:42:23
【问题描述】:

我希望我的 python 脚本只在周二、周五和周日执行,但问题是我只希望它执行一次。

while true; do 
 # %u day of week (1..7); 1 is Monday
 DATE=$(date +%u)

 # if DATE, 2 -eq tuesday, 5 -eq friday, 7 -eq sunday
 if [ $DATE -eq 2 ] || [ $DATE -eq 5 ] || [ $DATE -eq 7 ]; then
    #execute python script 
    echo "Today is $DATE"
 fi

 echo $DATE
done

【问题讨论】:

标签: python bash


【解决方案1】:

你需要的是cronjob:

首先在 python 脚本的最顶部添加一个 shebang 行。

#!/usr/bin/python (Depends on where your python is: check its path with: $ whereis python)

使用 chmod +x 使您的脚本可执行

chmod +x myscript.py

然后做一个crontab -e 并添加0 0 * * 2,5,0 /path/to/my/script/myscript.py

2、5、0 表示每周二、周五、周日。

【讨论】:

  • 我也是 {heart} cron,但这与“关键是我只希望它执行一次”的问题相符。
  • 哦,我使用 crontab 时它不会只执行一次?
  • @JohnnyBoy 它将在每个选定的日期执行一次,请参阅 crontab-generator.org 以了解更好的 crontab 表达式。
【解决方案2】:

您只需使用“at”命令即可。

有关此命令的更多信息,请访问http://manpages.ubuntu.com/manpages/hardy/man1/at.1posix.html

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2013-02-16
    • 2019-02-07
    • 2016-11-08
    • 2012-01-08
    • 1970-01-01
    相关资源
    最近更新 更多