Я пытаюсь перенаправить системный журнал на logentries.com, для чего требуется добавить строку в /etc/rsyslog.conf, пока все хорошо. однако я использую эластичный beanstalk Amazon и имею 3 среды (dev, staging, prod), которые я хотел бы направить на разные порты в зависимости от среды (logentries различает среду в зависимости от порта, на который она перенаправляется)
Я создал сайт apache, работающий на порту 8001, который просто выводит порт, который я хочу использовать для этого конкретного сервера (поскольку свойства контейнера эластичных бобовых стеблей добавляются к 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 в файл, чтобы посмотреть, что произойдет:
/path/to/your/script > /var/log/script.log 2>&1
Также имейте в виду, что: всегда используйте абсолютный путь команды. Измените последнюю строку на /sbin/service rsyslog restart
и попробуй еще раз.
PS: НИКОГДА chmod 777
для сценария оболочки!