Error: Could not open command file '/usr/local/nagios/var/rw/nagios.cmd' for update!The permissions on the external command file and/or directory may be incorrect. Read the FAQs on how to setup proper permissions.An error occurred while attempting to commit
your command for processing.
这个主要是apache 用户 没有执行权限 /usr/local/nagios/var/rw/nagios.cmd 造成。
分析nagios 启动脚本后发现,nagios 在停止的时候会删除掉 nagios.cmd
测试了一下,有一个比较恶毒的解决办法,就是在nagios 启动脚本中修改权限。
即:
start)
echo -n "Starting nagios:"
$NagiosBin -v $NagiosCfgFile > /dev/null 2>&1;
if [ $? -eq 0 ]; then
su - $NagiosUser -c "touch $NagiosVarDir/nagios.log $NagiosRetentionFile"
rm -f $NagiosCommandFile
touch $NagiosRunFile
chown $NagiosUser:$NagiosGroup $NagiosRunFile
$NagiosBin -d $NagiosCfgFile
if [ -d $NagiosLockDir ]; then touch $NagiosLockDir/$NagiosLockFile; fi
echo " done."
chmod -R 777 $NagiosVarDir/rw
exit 0
启动后即可。
这个主要是apache 用户 没有执行权限 /usr/local/nagios/var/rw/nagios.cmd 造成。
分析nagios 启动脚本后发现,nagios 在停止的时候会删除掉 nagios.cmd
测试了一下,有一个比较恶毒的解决办法,就是在nagios 启动脚本中修改权限。
即:
start)
echo -n "Starting nagios:"
$NagiosBin -v $NagiosCfgFile > /dev/null 2>&1;
if [ $? -eq 0 ]; then
su - $NagiosUser -c "touch $NagiosVarDir/nagios.log $NagiosRetentionFile"
rm -f $NagiosCommandFile
touch $NagiosRunFile
chown $NagiosUser:$NagiosGroup $NagiosRunFile
$NagiosBin -d $NagiosCfgFile
if [ -d $NagiosLockDir ]; then touch $NagiosLockDir/$NagiosLockFile; fi
echo " done."
chmod -R 777 $NagiosVarDir/rw
exit 0
启动后即可。

本文解决Nagios启动脚本中apache用户权限不足导致无法更新'/usr/local/nagios/var/rw/nagios.cmd'文件的问题。通过在启动脚本中修改权限,确保脚本正常运行。
691

被折叠的 条评论
为什么被折叠?



