我已通过 设置了下面的 cron 作业crontab -e
。我已尝试执行了以下所有建议为什么 crontab 脚本不起作用?,但没有任何帮助。运行 时,系统显然正在运行sudo grep CRON /var/log/syslog
。该文件run_extraction.sh
顶部有 shebang,并具有 的执行权限chmod +x
。正在创建日志文件,但未添加任何内容。更重要的是,python 脚本似乎没有运行,因为它没有创建任何输出。从命令行运行时,bash 脚本可以工作。
我考虑过设置环境变量,但考虑到甚至echo $USER
没有产生日志输出,似乎存在更根本的问题。有什么想法吗?
grep 输出
Aug 6 15:41:01 scalablegpu3 CRON[13723]: (myuser) CMD (/raid/myuser/database_extraction/run_extraction >> /raid/myuser/database_extraction/extraction.log)
Aug 6 15:42:01 scalablegpu3 CRON[13730]: (myuser) CMD (/raid/myuser/database_extraction/run_extraction >> /raid/myuser/database_extraction/extraction.log)
Crontab 条目
* * * * * /raid/myuser/database_extraction/run_extraction >> /raid/myuser/database_extraction/extraction.log
Bash 文件
#!/bin/bash
echo $USER
python database_extraction.py
答案1
你可能已经看了太久了。(相信我,我看过了)
shell 脚本是run_extraction.sh
,但是在 crontab 条目中,你缺少“.sh”。它应该看起来像:
* * * * * /raid/myuser/database_extraction/run_extraction.sh >> /raid/myuser/database_extraction/extraction.log
如果您希望记录 stderr 和 stdout,您可能希望在末尾添加重定向(这将有助于进一步调试):
* * * * * /raid/myuser/database_extraction/run_extraction.sh >> /raid/myuser/database_extraction/extraction.log 2>&1