使用 crontab/cron 安排 python 3.6 脚本
Scheduling a python 3.6 script in using crontab/cron
我只是在我的 Cent OS 开发服务器上设置一个 cron tab/job。
在我的 crontab 中,我有以下内容。 (忽略时间设置,这是添加了大约 15:32 UTC 服务器时间只是为了获得下一个预定 运行 中)。
34 15 * * * cd welcomeclient-0.0.5 && python3.6 main.py
在命令行中 cd welcomeclient-0.0.5 && python3.6 main.py
工作正常。 welcomeclient-0.0.5
在 droplet 的根目录下,python3.6
在 /usr/bin
.
有什么建议吗?
尝试在您的 crontab 命令中使用绝对路径:
34 15 * * * cd /foo/bar/welcomeclient-0.0.5 && /usr/bin/python3.6 main.py
或者,假设 main.py 也没有使用其中的相对路径:
34 15 * * */usr/bin/python3.6 /foo/bar/welcomeclient-0.0.5/main.py
看起来您正在尝试更改 crontab 中的目录,就像 omu_negru 所说的那样,您需要改用完整路径。那是因为crontab即使运行ning在你的名字下也不会继承你的$PATH等环境变量。
试试这个。首先,转到您的脚本所在的目录...并将您的 main.py 转换为可执行文件,这样您就不必再调用 python main.py。最简单的方法是...
$ chmod u+x main.py
现在,如果您执行 ls -l,您会看到在权限的用户部分中有 "x",这将允许您直接 运行 它。
-rwxr--r-- 1 user user 0 Aug 17 17:55 main.py
现在您已准备好将 crontab 语法简化为如下形式...
34 15 * * * /foo/bar/welcomeclient-0.0.5/main.py
我还喜欢将脚本的输出捕获到日志文件中,这样当事情没有按计划进行时更容易进行故障排除,如下所示:
34 15 * * * /foo/bar/welcomeclient-0.0.5/main.py & >> /foo/bar/main.log
应将日志添加到日志轮换中,否则它会不断填满并最终使您的系统 运行 超出 space,但这是本站点已解决的另一个主题。
我只是在我的 Cent OS 开发服务器上设置一个 cron tab/job。
在我的 crontab 中,我有以下内容。 (忽略时间设置,这是添加了大约 15:32 UTC 服务器时间只是为了获得下一个预定 运行 中)。
34 15 * * * cd welcomeclient-0.0.5 && python3.6 main.py
在命令行中 cd welcomeclient-0.0.5 && python3.6 main.py
工作正常。 welcomeclient-0.0.5
在 droplet 的根目录下,python3.6
在 /usr/bin
.
有什么建议吗?
尝试在您的 crontab 命令中使用绝对路径:
34 15 * * * cd /foo/bar/welcomeclient-0.0.5 && /usr/bin/python3.6 main.py
或者,假设 main.py 也没有使用其中的相对路径:
34 15 * * */usr/bin/python3.6 /foo/bar/welcomeclient-0.0.5/main.py
看起来您正在尝试更改 crontab 中的目录,就像 omu_negru 所说的那样,您需要改用完整路径。那是因为crontab即使运行ning在你的名字下也不会继承你的$PATH等环境变量。
试试这个。首先,转到您的脚本所在的目录...并将您的 main.py 转换为可执行文件,这样您就不必再调用 python main.py。最简单的方法是...
$ chmod u+x main.py
现在,如果您执行 ls -l,您会看到在权限的用户部分中有 "x",这将允许您直接 运行 它。
-rwxr--r-- 1 user user 0 Aug 17 17:55 main.py
现在您已准备好将 crontab 语法简化为如下形式...
34 15 * * * /foo/bar/welcomeclient-0.0.5/main.py
我还喜欢将脚本的输出捕获到日志文件中,这样当事情没有按计划进行时更容易进行故障排除,如下所示:
34 15 * * * /foo/bar/welcomeclient-0.0.5/main.py & >> /foo/bar/main.log
应将日志添加到日志轮换中,否则它会不断填满并最终使您的系统 运行 超出 space,但这是本站点已解决的另一个主题。