Добрый вечер, хабражители!
Некий форматированный текст передаётся демоном по STDIN в sh скрипт:
#!/bin/sh
while read x y
do case "$x$y" in
'') exec logger -t collectd${severity+" $severity" -p user."$severity"};;
Severity:WARNING) severity=warning;;
Severity:OKAY) severity=notice;;
Severity:FAILURE) severity=err;;
esac
done
Образец текста:
Severity: FAILURE
Time: 1200928930
Host: myhost.mydomain.org
\n
This is a test notification to demonstrate the format
Но что при этом происходит никак разобраться не могу.
Вижу цикл… а дальше не понятно.
Просьба помочь по следующим вопросам:
Что происходит (пошагово) при выполнении скрипта?
Как самостоятельно передать по STDIN произвольный текст в этот скрипт?
Как модифицировать скрипт чтобы этот произвольный текст был записан в файл, а не в syslog?
Заранее спасибо.
UPD. Спасибо за помощь, но один момент остался неясным — как
весь входящий текст перенаправить в файл
UPD2 Разобрался. Нужно делать так
#!/bin/sh
read severity
read time
echo $severity >> file
echo $time >> file