先放结论:
有时候我们的代码需要在crontab中传入特定的时间参数,比如我希望运行如下代码:
python main.py -t 202207080000 202207130000
假设上述代码表示传入两个时间参数
-t后面的时间参数,我们往往希望是跟着时间动态变化的,这个时候需要如下设置:
python main.py -t $(date "+%Y%m%d%H%M" -d "-4 hours") $(date "+%Y%m%d%H%M" -d "-0 hours")
或者
python main.py -t $(date "+%Y%m%d%H%M" -d "-4 hours -30 minutes") $(date "+%Y%m%d%H%M" -d "-0 hours -13 minutes")
或者
python main.py -t $(date "+%Y%m%d%H%M" -d "+4 hours +30 minutes") $(date "+%Y%m%d%H%M" -d "+0 hours +13 minutes")
注意:
1.必须使用双引号
2.百分号之前必须加反斜杠,否则crontab不会运行,但是加反斜杠的话,直接在命令行是不可以运行的,命令行运行需要去掉反斜杠
3. -d参数必须在后面
总之,必须严格按照我这里写的格式
再说过程:
我测试了很多次,直接在命令行输入:
python main.py -t $(date "+%Y%m%d%H%M" -d "-4 hours") $(date "+%Y%m%d%H%M" -d "-0 hours")
的时候,代码会报错,必须改成python main.py -t $(date "+%Y%m%d%H%M" -d "-4 hours") $(date "+%Y%m%d%H%M" -d "-0 hours")
但是在crontab中,不加反斜杠,代码是不会运行的!crontab和命令行不同
暑期编程PK赛 得CSDN机械键盘等精美礼品!


