【问题标题】:Linux permissions executing scriptLinux权限执行脚本
【发布时间】:2016-09-14 14:30:12
【问题描述】:

问题是关于 sudo&cron 我有 2 台服务器:

srv0
- 我通过 .ppk 和登录名进行身份验证
- 我使用 sudo 手动运行简单的 .py 脚本。
- 脚本运行命令到 web 服务并打印到文件时间+返回的数据(元组)。 它也被 cron 运行良好,这是目标

srv1 差异
- 我通过 root 密码进​​行身份验证
- 我可以在没有 sudo 的情况下手动运行脚本,而且效果很好
- Cron 运行良好,但打印到文件只是时间。它没有执行命令...它发送 empy body 消息到 /var/spool/mail/root

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

srv1 的 cron 有什么问题?也许在 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()

【问题讨论】:

标签: linux permissions cron crontab sudo


【解决方案1】:

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

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

Cron 对你的 shell 一无所知;它是由系统启动的,所以它有一个最小的环境。如果你想要什么,你需要自己带来。

换行

getmess = commands.getstatusoutput('rabbitmqctl list_queues messages')

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

哪个rabbitmqctl帮你找到rabbitmqctl的路径

PS

对不起我的英语(:

【讨论】:

  • 谢谢,太好了!
猜你喜欢
  • 2021-11-16
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
  • 2016-11-16
相关资源
最近更新 更多