我想知道如何确切地看到cron作业在每次执行时都在做什么.日志文件位于何处?或者我可以将输出发送到我的电子邮件吗?我已经设置了电子邮件地址,以便在cron作业运行时发送日志,但我还没有收到任何信息.
我通过输入crontab -e在ubuntu环境中为root用户设置了cronjob
34 11 * * * sh /srv/www/live/CronJobs/daily.sh
0 08 * * 2 sh /srv/www/live/CronJobs/weekly.sh
0 08 1 * * sh /srv/www/live/CronJobs/monthly.sh
Run Code Online (Sandbox Code Playgroud)
但是cronjon不会跑.我已经尝试检查cronjob是否正在运行
pgrep cron
并提供进程ID 3033. shell脚本调用python文件,用于发送电子邮件.运行python文件是可以的.它没有错误,但是cron没有运行.daily.sh文件中包含以下代码.
python /srv/www/live/CronJobs/daily.py
python /srv/www/live/CronJobs/notification_email.py
python /srv/www/live/CronJobs/log_kpi.py
Run Code Online (Sandbox Code Playgroud) 背景:我正在跟踪Crontab不在运行我的python脚本,以尝试使用CRON调试和运行我的python脚本。根据SO的建议,我尝试/usr/bin/python /Users/eer/Desktop/myscript.py在终端上。
问题:但是,出现错误:ImportError: No module named tweepy。所以,我想pip install tweepy,我得到如下:Requirement already satisfied: tweepy in /Users/eer/anaconda/lib/python2.7/site-packages。因此,我似乎有些蠕动,但当我/usr/bin/python /Users/eer/Desktop/myscript.py似乎没读过它时。有什么建议吗?
Python crontab脚本似乎不起作用.当我手动运行时,
python /home/ec2-user/code1.py
Run Code Online (Sandbox Code Playgroud)
它工作正常但是当放入crontab的cron.txt文件时,不行.
我的crontab文件是:
@hourly python /home/ec2-user/code1.py >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
我也试过了
0 * * * * python /home/ec2-user/code1.py >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
但是没有太多运气.
sudo crontab -l
@hourly python /home/ec2-user/code1.py >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
显示一切功能.我试过Crontab没有运行我的python脚本,并且其他人也没有运气.
同
PATH=/opt/python2.7/bin
MAILTO=my@email
*/5 * * * * /home/ec2-user/code1.py
Run Code Online (Sandbox Code Playgroud)
我得到的电子邮件是:
/bin/sh: /home/ec2-user/code1.py : No such file or directory
Run Code Online (Sandbox Code Playgroud)
但我可以打开并编辑文件没问题.我尝试了很多不同的东西,但它归结为:cron没有看到文件.
感觉像我经历了整个https://askubuntu.com/questions/23009/reasons-why-crontab-does-not-work 仍然没有运气
我有一个shell脚本,包括执行python脚本.当我在终端中手动运行它时,它工作正常.但是,当我在cron作业中执行shell脚本时,python脚本失败.
当函数从module1导入module2时,显然会触发错误.错误引用的函数不在导入的函数中,也不是语法错误在其自身执行时引发错误的函数.
这是我运行cron作业时记录的错误:
File "/Users/me/module2.py", line 5, in <module>
from module1 import consolidate_rankings, build_all
File "/Users/me/module1.py", line 159
things = {row["thing"]: row for row in rows}
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
module2脚本非常简单:
#!/usr/bin/env python
from module1 import consolidate_rankings, build_all
consolidate_rankings()
build_all()
Run Code Online (Sandbox Code Playgroud)
这是在shell脚本中调用它的行:
python /Users/me/module2.py
任何人都知道这里发生了什么?