【发布时间】:2015-04-02 03:23:16
【问题描述】:
我有一个 cron 作业,每天由名为“taskmanager”的用户运行,我每次都需要重置配置。
用户 taskmanager 在 /etc/sudoer 上有 NOPASSWD
我还有一个私人存储库,我在其中制作了我的配置的 RPM。每当我手动运行 bash 脚本时,yum -y 都能完美运行,但是当脚本由 cron 运行时,退出代码为 1,手动执行的退出代码返回 0。
/usr/bin/sudo /usr/bin/yum -y reinstall --disablerepo="*" --enablerepo=codevault project-configuration
echo $?
【问题讨论】:
-
使用
#!/bin/bash作为第一行。 -
我的脚本有 shebang #!/bin/bash @Cyrus
-
作为哪个用户运行您的 cronjob? root 不需要 sudo 或不允许使用 sudo。
-
taskmanager 用户拥有 root 权限并且拥有 NOPASSWD。 taskmanager 是执行 cron 的人
-
好的,抱歉迟到了评论。我发现你不能在你的 cron 上执行 sudo。你需要一个 sudo 的 tty,除非你在 /etc/sudoers 上注释掉它 :) 谢谢你们的帮助