我正在尝试将 syslog 转发到 logentries.com,这需要在 /etc/rsyslog.conf 中添加一行,到目前为止一切顺利。但是,我在 amazon elastic beanstalk 上运行并且有 3 个环境(开发、暂存、生产),我想根据环境路由到不同的端口(logentries 根据转发的端口区分环境)
我创建了一个在端口 8001 上运行的 apache 站点,它只输出我想用于这个特定服务器的端口(因为弹性 beanstalk 容器属性附加到 php.ini,我需要一种方法来输出 php.ini 变量)。然后我写了一个脚本:
#!/bin/bash
LOGENTRIES_PORT=`curl 127.0.0.1:8001`
if [ "${LOGENTRIES_PORT}" == '' ]; then
exit -1
fi
echo "*.* @@46.51.181.128:${LOGENTRIES_PORT}" >> /etc/rsyslog.conf
service rsyslog restart
从终端运行时效果很好,但我似乎无法在启动时运行。
我把它插在里面/etc/rc.d/rc.local
,我把它插进去/etc/rc.d/rc3.d/S99logentries
(777
烫发)但没有运气。任何想法为什么会这样?
将脚本作为 cron 作业或在启动时运行的“旧”技巧是将 stderr 和 stdout 重定向到一个文件以查看会发生什么:
还要记住:始终使用命令的绝对路径。将最后一行更改为 并重
/sbin/service rsyslog restart
试。PS:永远不要
chmod 777
用于 shell 脚本!