当我在终端中运行 python 脚本时,它会按预期运行;下载文件并将其保存在所需位置。
sudo python script.py
Run Code Online (Sandbox Code Playgroud)
我已将 python 脚本添加到根 crontab,但随后它按预期运行,除非它不写入文件。
$ sudo crontab -l
> * * * * * python /home/test/script.py >> /var/log/test.log 2>&1
Run Code Online (Sandbox Code Playgroud)
下面是一个仍然存在问题的简化脚本:
#!/usr/bin/python
scheduleUrl = 'http://test.com/schedule.xml'
schedule = '/var/test/schedule.xml'
# Download url and save as filename
def wget(url, filename):
import urllib2
try:
response = urllib2.urlopen(url)
except Exception:
import traceback
logging.exception('generic exception: ' + traceback.format_exc())
else:
print('writing:'+filename+';')
output = open(filename,'wb')
output.write(response.read())
output.close()
# Download the schedule
wget(scheduleUrl, schedule)
Run Code Online (Sandbox Code Playgroud)
我确实收到消息“正在写入:文件名;” 在日志中,cron 条目输出到日志中。但实际文件无处可寻......
目录 /var/test 被修改为 777 并且使用任何用户,我都可以随意添加和更改文件。
grep -i cron /var/log/syslog
2>&1
从命令行中删除,直到它按设计工作。任何有用的错误都会被重定向到未创建的文件;有效地丢失了。mutt
或 in /var/spool/mail
)。默认情况下,来自 cron 的错误消息会发送到系统电子邮件。还:
归档时间: |
|
查看次数: |
24704 次 |
最近记录: |