Не се засягай, но ми е трудно да намеря каквато и да е била полза или логика
от това да се праща съдържанието на syslog файла от предния ден на локална
(или друга) поща, още по-малко от начина по който е направено: 

(прескачам събитията около subject)

Това което си написал търси " X " в syslog файл, където X е денят от
текущата дата - 1. Това всъщност е число или цифра оградено с по един blank
space.. нищо общо с каквато и да е била акуратност.

А какво става на 1-ви? Грепваш " 0 " от този източник.. вероятно върви и
системен cron job, който ти архивира тези файлове ежедневно..

Това което се опитваш да направиш може да се изпълни със сходен one-liner в
crontab-а ти

59 23 * * * grep ^"`date +%b' '%d`" /var/log/syslog | mail -s "`blah`"
[EMAIL PROTECTED]

Ако писмото в този си вид отива на отдалечена поща се замисли, че доста хора
по пътя могат да го прочетат, а записи като 

Sep 24 15:56:18 adm login[3831]: FAILED LOGIN 1 FROM  FOR
rootnesymmnogoostyr, Authentication failure

не са рядкост... :)

Мисля че е по-идейно да ползваш софтуер (вече ти препоръчаха), който следи
за определени събития по логовете ти и те алармира по даден критерий.

В.




-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of MafiaInc
Sent: Saturday, September 24, 2005 9:55 AM
To: lug-bg@linux-bulgaria.org
Subject: lug-bg: Изпращане на syslog по e-mail с един ред

Искам всяка сутрин да си самоизпращам syslog файла по електронната поща и за
целта добавих един ред в crontab, който върши работа, но според мен не е
достатъчно оптимизиран и може още да се смачка, не съм запознат изцяло с
възможностите на awk.

Какъв по-кратък вариянт предлагате на следния ред:

echo "Subject for " > /tmp/subject ; date +%e | awk '/.*/ {$1-- ; print $1}'
>> /tmp/subject ; date "+ %b %Y" >> /tmp/subject ; cat /tmp/subject
/var/log/syslog | grep " `date +%e | awk '/.*/ {$1-- ; print $1}'` " |
/var/qmail/bin/qmail-inject [EMAIL PROTECTED] > /dev/null ; rm /tmp/subject

--
MafiaInc (c) 1983 - 2005 

Reply via email to