我有一个需要每天运行的 Python 作业
它需要 start_date 和 end_date 参数,所以我使用 date 。
该命令一开始不起作用,但是在shell中执行时没有问题:
0 7 * * * /usr/bin/python3 /home/ubuntu/income_revenue.py $(date -d '-1 day' '+%Y-%m-%d') $(date -d '-1 day' '+%Y-%m-%d')
经过一番搜索,我发现我需要%
在 crontab 中退出。新版本仍然没有触发
0 7 * * * /usr/bin/python3 /home/ubuntu/income_revenue.py $(date -d '-1 day' '+\%Y-\%m-\%d') $(date -d '-1 day' '+\%Y-\%m-\%d')
所以我创建了一个带有内容的 shell 脚本
/usr/bin/python3 /home/ubuntu/income_revenue.py $(date -d '-1 day' '+%Y-%m-%d') $(date -d '-1 day' '+%Y-%m-%d')
并在 crontab 中添加:
* * * * * /bin/sh /home/ubuntu/job.sh
仍然没有触发。虽然/bin/sh /home/ubuntu/job.sh
在 shell 中可以工作。
我还进行了以下测试:
* * * * * /bin/echo $(date -d '-1 day' '+\%Y-\%m-\%d') >> /tmp/crontab.log
有效。
我不明白为什么!