crontab 的问题

2015 年 7 月 21 日
 greatdk
我在树莓派里设置了一个crontab,定时执行一个python文件,这个python文件会去网上特定的地址去获取一个命令,然后用python的os库的os函数来执行这条获取的系统命令

问题在于,crontab它不执行啊!在ssh里面是可以很顺利的执行这个python文件的,但crontab里定时,就是不执行,不知道为啥。

同时,另一些crontab里面的任务是执行的,求解决办法~
3755 次点击
所在节点    问与答
20 条回复
kn007
2015 年 7 月 21 日
看日志
kn007
2015 年 7 月 21 日
比较可能的一个就是python没用绝对路径
greatdk
2015 年 7 月 21 日
@kn007 python用的是绝对路径,事实上我发现它是执行了的,去那个地址获取了命令的,但是命令没执行
kn007
2015 年 7 月 21 日
@greatdk 权限问题?
fo2w
2015 年 7 月 21 日
2&>/home/xx/log
vibbow
2015 年 7 月 21 日
看系统变量
尤其是 $PATH
greatdk
2015 年 7 月 21 日
@kn007 命令里面加了sudo啊,python代码是:
# -*- coding=utf-8 -*-
import sys, urllib
import os

url = "http://xxx.com/pi.php" #网页地址

wp = urllib.urlopen(url) #打开连接

content = wp.read() #获取页面内容
print content

os.system("%s"%(content))
octopus_new
2015 年 7 月 21 日
Cynic222
2015 年 7 月 21 日
你不把你的crobjob写出来大家怎么猜。。。
cmxz
2015 年 7 月 21 日
crontab大部分原因是环境变量的问题
kn007
2015 年 7 月 21 日
@greatdk 现在就是content在日志看得到?但是os.system未执行?
baocaixiong
2015 年 7 月 21 日
如果在脚本中有print,并且输出到了一个日志文件,请记得你print 出来的string一定要 encode('utf8')

吃过同样的亏。。。
ETiV
2015 年 7 月 22 日
命令带sudo,没做过nopassword设置的话是需要输入密码的。

如果确实需要sudo,你倒不如把cronjob安装到root用户下。注意脚本的可写也给改到root only
jarlyyn
2015 年 7 月 22 日
sudo.......
用root执行吧。
Tink
2015 年 7 月 22 日
权限
greatdk
2015 年 7 月 22 日
@kn007 我不知道在哪看日志,不过我网页是监视到每隔设置好的时间就有一个访问的,但是不执行
kn007
2015 年 7 月 22 日
@greatdk 。。。。centos在/var/log/cron看。
greatdk
2015 年 7 月 22 日
@kn007 我用的貌似不是centos,我查过,好像也没看到过 /var/log/cron这个,但是就算它默认执行过了吧,那么问题会是啥啊
mkeith
2015 年 7 月 22 日
你的问题是Python脚本已经运行了吧,那么还关 corntab 什么关系啊?
kn007
2015 年 7 月 22 日
@greatdk 。。。那我怎么知道,就算是没问题吧。
做事不严谨,就不要期待别人严谨的帮你。
还有5L也给你方法了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/207359

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX