我在CentOS 6框中将python脚本作为特定用户帐户运行时遇到了一个小问题。
我的cron.d / cronfile如下所示:
5 17 * * * reports /usr/local/bin/report.py > /var/log/report.log 2>&1
帐户reports
存在,该脚本要访问的所有文件都是chowned
和chgrped
到reports
。 python脚本是chmod a+r
。 python脚本以#!/usr/bin/env python
开头。
但这不是问题。问题是我在日志文件中看不到任何内容。 python脚本甚至没有开始运行!任何想法为什么会这样?
如果我在cronfile中将用户更改为root
而不是reports
,则运行正常。但是我无法在生产服务器中将其作为root
运行。
如果您有任何疑问,请询问:)
/ E:
如果我sudo -u reports python report.py
它可以正常工作。
答案 0 :(得分:0)
Cron作业使用设置了cron作业的用户的权限运行。
I.E.无论reports
用户的cron表中是什么,都将以reports
用户身份运行。
如果您必须sudo
以reports
登录时运行脚本,那么该脚本可能也不会作为cron作业运行。在没有reports
的情况下以sudo
身份登录时,您是否可以运行此脚本?如果没有,那么cron工作也不能。有意义吗?
检查您的日志 - 您是否收到权限错误?
有很多原因导致您的脚本需要某些权限,但解决此问题的一种简单方法是将cron作业设置为root
而不是reports
。更长的方法是查看究竟需要提升权限的内容并修复它。它是文件权限吗?受保护的命令?将reports
添加到某些群组可能会让您在reports
而不是root
下运行它。
*如果/当您以root身份设置cron作业时,请小心