【问题标题】:yum reinstall on cron not workingcron 上的 yum 重新安装不起作用
【发布时间】: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 上注释掉它 :) 谢谢你们的帮助

标签: bash cron yum


【解决方案1】:

您的 cronjob 没有正确设置环境 - 可能缺少环境变量。

在 cronjobs 中运行的任务不获取用户的环境,只获取权限。所以你的用户有权运行命令(你的 sudoers 文件可能没问题),但是没有设置命令正确运行所需的一些环境变量。

要弄清楚是什么,请查看 cron 的输出 - 您可能有邮件。一旦你确定了丢失的变量,你可以在你的 cron 文件中设置它various ways

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 2019-07-18
    • 2020-10-24
    • 2016-06-10
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    相关资源
    最近更新 更多