0

我正在运行一个命令,该命令作为我创建的 python 包的脚本安装。

我有一个 cronned_job_shell_script.sh 文件:

touch a.txt
my_script_command

在哪里my_scrip_command安装使用pip install my_py_package.tar.gz

cron 行是:

0 * * * * cronned_job_shell_script.sh

如果我cronned_job_shell_script.sh从 shell 运行它可以正常工作,也可以运行 python 脚本。

即使先尝试env -i /bin/bash --noprofile --norc然后运行脚本也可以。

问题是,当由 cron 调度时,文件 a.txt 被触及,但脚本似乎没有运行。

4

1 回答 1

2

问题是您将它放在系统 crontab 中,这意味着它由 root 运行,并且 root 具有PATH与您的用户不同的变量。因此,在 shell 中测试它(作为你,而不是 root)实际上并没有测试同样的东西。

最简单的解决方案是只使用脚本的绝对路径——<code>/opt/mystuff/bin/my_script_command 而不是my_script_command.

于 2013-07-05T09:16:25.380 回答