我试图在 OpenWrt 盒子上运行 python 脚本:
#!/root/system/usr/bin/python
import subprocess
p = subprocess.Popen([r"snmpget","-v","1","-c","public","-Oqv","-Ln", "192.168.1.1","1.3.6.1.2.1.2.2.1.10.7"], stdout=subprocess.PIPE).communicate()[0]
data = [r"curl","-d","iface_id=1&content="+ str(p).rstrip() ,"http://192.168.1.5:8080/stat/add_istat/"]
a = subprocess.Popen(data, stdout=subprocess.PIPE).communicate()[0]
它通过 snmp 获取数据,然后通过 curl 将数据发布到本地服务器。从外壳可以正常工作:
root@OpenWrt:~/python# ./w.py
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 34 0 6 0 28 31 146 --:--:-- --:--:-- --:--:-- 0
我可以在数据库中看到数据。但来自 cron:
0-55/5 * * * * /root/python/w.py
我在 logread 中看到:
Dec 20 23:30:01 OpenWrt cron.err crond[1039]: USER root pid 16141 cmd /root/python/w.py
但是 DB 中没有数据 :( 并且 httpd access.log 中没有任何数据 :( 为什么?