Munin 在运行 munin-cron 时无法复制内容

问题描述 投票:0回答:2

我最近在我的(基于 Fedora 的)服务器上安装了 munin。现在,我想获取静态目录中的所有图形(应用程序在 Django 上运行)。因此,我通过将

\etc\munin\munin.conf
设置为静态文件夹的绝对路径来编辑文件
htmldir
。然后,当我执行
munin-cron
时,出现以下错误:

This program will easily break if you run it as root as you are
trying now.  Please run it as user 'nobody'.  The correct 'su' command
on many systems is 'su - munin --shell=/bin/bash'
Aborting.

因此,我更改了用户并尝试以 munin 作为用户运行相同的操作。然后我收到以下错误:

[ERROR] Could not copy contents from /etc/munin/static/ to /[path to static 
file] at /usr/share/perl5/vendor_perl/Munin/Master/HTMLOld.pm line 716.

chown
编辑了静态目录(对于munin用户递归),甚至尝试使用
chmod 777
(实际上不应该这样做),所以基本上这似乎不是权限问题。

此外,我的开发服务器是基于 Ubuntu (12.04) 的。那里工作得很好。即使我的本地机器运行 Ubuntu (14.04),它也能正常工作。这可能是操作系统问题吗?这似乎不太可能。我还可能错过什么?任何帮助将不胜感激。

PS:还有一个问题。当我在 Ubuntu 中以 root 身份运行

munin-cron
时,它给出的错误是:

This program will easily break if you run it as root as you are
trying now.  Please run it as user 'munin'.  The correct 'su' command
on many systems is 'su - munin --shell=/bin/bash'
Aborting.

而这里是

nobody
。会不会是配置问题?

django ubuntu cron fedora munin
2个回答
0
投票

我在 CentOS 6.5 上也遇到了同样的问题。没有可能的权限修复了这个问题。所以我必须代表 munin 用户在 root 的 crontab 下运行 cron。听起来很疯狂,但它确实有效:

  • 在 root 的 crontab 下触发 cron:
    • 将其添加到 root 的 crontab
      */5 * * * * sudo -u munin crontab -e
    • 注释掉
      Defaults    requiretty
      中的这一行
      /etc/sudoers

0
投票

可能是您不仅对目标目录没有写权限,而且对它下的子目录“static”也没有写权限。
这可以通过运行来解决:

# chown -R munin:munin /var/www/html/munin/static/

说明如下:
就我而言,错误是:

Could not copy contents from /etc/munin/static/ to /var/www/html/munin at /usr/share/perl5/vendor_perl/Munin/Master/HTMLOld.pm line 795
,即:

unless(dircopy($staticdir, "$htmldir/static")){
        ERROR "[ERROR] Could not copy contents from $staticdir to $htmldir";
        die "[ERROR] Could not copy contents from $staticdir to $htmldir";
}

事实上该目录错误地由 root 拥有:

$ ls -l /var/www/html/munin
total 0
drwxr-xr-x 2 munin munin 51 Jun 25 13:44 cgi
drwxr-xr-x 2 root  root  24 Jun 25 13:44 static

这发生在 RHEL9 上的 munin-2.0.75-1.el9.noarch 上。

© www.soinside.com 2019 - 2024. All rights reserved.