2016-09-14 232 views
0

问题是关于须藤&的cron Linux权限我有2个服务器:执行脚本

srv0
- 我权威性的.ppk和登录名
- 使用sudo我用手运行简单的.py脚本。
- 脚本运行命令到webservice并打印到文件时间+返回的数据(元组)。 也由cron,这是目标运行良好

SRV1差异
- 我权威性的root密码
- 我可以运行手工脚本没有sudo,而且运作良好
- 克朗运行得很好,但打印到文件只是时间。它没有执行命令...它发送empy正文消息到/ var/spool/mail/root

其他:
-/home/monitors,2个文件(.py,log)在两个服务器上都是777

cron在srv1上的问题是什么?也许在fileOpen?

import string 
import commands 
import time 

namesStr ='currtime;wrs-checklist-create;wrs-checklist-delete;wrs-checklist-getall;wrs-checklist-getone;wrs-checklist-update;wrs-photo-queue;wrs-shop-getall;wrs-template-getall;wrs-xauth-authenticate;' 

getmess = commands.getstatusoutput('rabbitmqctl list_queues messages') 
getmess = list(getmess[1].split('\n')) 

messStr = '' 
nixtime = str(int(time.time())) 

for mess in getmess: 
     messStr += mess + ';' 

logQue = open('/home/monitors/logQue', 'a') 
print >> logQue, nixtime + messStr 
logQue.close() 
+0

不是一个编程问题 - 尝试http://unix.stackexchange.com? –

回答

0

在crontab中,在命令之前添加。 $ HOME/.bash_profile中。例如:

0 5 * * *。 $ HOME/.profile文件;/path/to/command/to/run

Cron对你的shell一无所知;它由系统启动,因此它具有最小的环境。如果你想要什么,你需要拥有自己带来的东西。

OR

只是改变线

getmess = commands.getstatusoutput(” rabbitmqctl list_queues消息 ')

getmess = commands.getstatusoutput(' /usr/sbin/rabbitmqctl list_queues messages')

这rabbitmqctl帮助您找到路径rabbitmqctl

PS

对不起,我的英语(:

+0

谢谢,这很完美! – Riorita