1

我在我的 CentOS 6 机器中将 python 脚本作为特定用户帐户运行时遇到了一个小问题。

我的 cron.d/cronfile 看起来像这样:

5 17 * * * reports /usr/local/bin/report.py > /var/log/report.log 2>&1

该帐户reports存在,并且该脚本要访问的所有文件都是chownedchgrpedto reports。python 脚本是chmod a+r. python 脚本以#!/usr/bin/env python.

但这不是问题。问题是我在日志文件中什么也看不到。python 脚本甚至没有开始运行!任何想法为什么会这样?

如果我将用户更改为root而不是reports在 cronfile 中,它运行良好。但是我不能像root在生产服务器中那样运行它。

如果您有任何问题,请询问 :)

/e:如果我这样做sudo -u reports python report.py,效果很好。

4

1 回答 1

0

cron 作业以设置 cron 作业的用户的权限运行。IE 用户的 cron 表中的任何内容都reports将以用户身份运行reports

如果您必须这样sudo做才能在以 身份登录时运行reports脚本,那么该脚本也可能不会作为 cron 作业运行。你可以在没有登录的reports情况下运行这个脚本sudo吗?如果没有,那么 cron 作业也不能。说得通?

检查您的日志 - 您是否收到权限错误?

您的脚本需要某些 privs 的原因有很多,但解决此问题的一种简单方法是将 cron 作业设置rootreports. 更长的方法是查看究竟是什么需要提升的权限并修复它。是文件权限吗?受保护的命令?也许添加reports到某些组将允许您在reports而不是root.

*如果/当您将 cron 作业设置为 root 时,请格外小心

于 2013-08-08T17:03:22.107 回答