我试图转发系统日志到logentries.com需要一行添加到/etc/rsyslog.conf,到目前为止很好。 然而,我在亚马逊弹性beanstalk上运行,并有3个环境(dev,staging,prod),我想根据环境路由到不同的端口(logentries根据它转发的端口区分环境)
我创build了一个运行在端口8001,只输出我想用于这个特定的服务器的端口(因为弹性beanstalk容器属性附加到php.ini,我需要一种方式来输出php.inivariables)的Apache网站。 然后我写了一个脚本:
#!/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
这从terminal运行时工作很好,但我似乎无法启动运行。
我已经把它放在/etc/rc.d/rc.local
,我把它放在/etc/rc.d/rc3.d/S99logentries
烫发),没有运气。 任何想法,为什么这可能是?
运行脚本作为cron作业或启动时的“旧”技巧是将stderr和stdoutredirect到一个文件,以查看会发生什么情况:
/path/to/your/script > /var/log/script.log 2>&1
还要记住:总是使用命令的绝对path。 将最后一行更改为/sbin/service rsyslog restart
试。
PS: 从来没有 chmod 777
的shell脚本!