Linux 权限执行脚本
Linux permissions executing script
问题是关于 sudo&cron
我有 2 个服务器:
srv0
- 我通过 .ppk 和登录名进行身份验证
- 我 运行 使用 sudo 手动编写简单的 .py 脚本。
- 脚本 运行s 命令到 web 服务并打印到文件时间+返回的数据(元组)。
它还 运行cron 很好,这就是目标
srv1 差异
- 我通过 root 密码验证
- 我可以 运行 在没有 sudo 的情况下手动编写脚本并且效果很好
- Cron 运行 很好,但打印到文件只是时间。它没有执行命令...它向 /var/spool/mail/root
发送空正文消息
额外:
- /home/monitors,两台服务器上的 2 个文件(.py、日志)均为 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()
在 crontab 中,在您执行命令之前,添加 . $HOME/.bash_profile.例如:
0 5 * * * 。 $HOME/.profile; /path/to/command/to/run
Cron 对您的 shell 一无所知;它由系统启动,所以它有一个最小的环境。如果你想要什么,你需要自己带来。
或
只是换行
getmess = commands.getstatusoutput('rabbitmqctl list_queues 消息')
至
getmess = commands.getstatusoutput('/usr/sbin/rabbitmqctl list_queues 消息')
哪个rabbitmqctl帮你找到rabbitmqctl的路径
PS
对不起我的英语 (:
问题是关于 sudo&cron 我有 2 个服务器:
srv0
- 我通过 .ppk 和登录名进行身份验证
- 我 运行 使用 sudo 手动编写简单的 .py 脚本。
- 脚本 运行s 命令到 web 服务并打印到文件时间+返回的数据(元组)。
它还 运行cron 很好,这就是目标
srv1 差异
- 我通过 root 密码验证
- 我可以 运行 在没有 sudo 的情况下手动编写脚本并且效果很好
- Cron 运行 很好,但打印到文件只是时间。它没有执行命令...它向 /var/spool/mail/root
额外:
- /home/monitors,两台服务器上的 2 个文件(.py、日志)均为 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()
在 crontab 中,在您执行命令之前,添加 . $HOME/.bash_profile.例如:
0 5 * * * 。 $HOME/.profile; /path/to/command/to/run
Cron 对您的 shell 一无所知;它由系统启动,所以它有一个最小的环境。如果你想要什么,你需要自己带来。
或
只是换行
getmess = commands.getstatusoutput('rabbitmqctl list_queues 消息')
至
getmess = commands.getstatusoutput('/usr/sbin/rabbitmqctl list_queues 消息')
哪个rabbitmqctl帮你找到rabbitmqctl的路径
PS
对不起我的英语 (: