Portál AbcLinuxu, 18. července 2025 06:26


Dotaz: bash podminka

18.10.2012 14:18 pxvos | skóre: 4
bash podminka
Přečteno: 300×
Odpovědět | Admin

Ahoj,

mam nasledujici problem. Do jednoho souboru mi chodi stderr, ale v podstate se nejedna o chybu nybrz varovani, ktere bych chtel odfiltrovat. Chci si udelat skript, ktery odesle mail v pripade, ze se neco v stderr objevi, ale nechci, aby odeslal mail prave v pripade toho varovani. To varovani je na jeden radek, kde na zacatku je nejake promenlive cislo, pak nasleduje text, ktery snad bude stale stejny. Otazka je tedy jak by mela vypadat podminka, ktera by tuto hlasku odfiltrovala. Diky za radu


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.10.2012 15:45 NN
Rozbalit Rozbalit vše Re: bash podminka
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ten vystup STDERR do souboru prepisuje soubor, nebo pripisuje nove radky ? "Snad stejny" to neberu.. Mezi cislem a textem je mezera, nebo nic ? Jinak tvuj problem zvladne jednoducha IF podminka a regexp..
18.10.2012 16:02 pxvos | skóre: 4
Rozbalit Rozbalit vše Re: bash podminka
pripisuje nove radky. Stejny to je ... zatim :-D Mezi cislem a textem je mezera a v nasledujicim textu jsou taky mezery.
18.10.2012 17:25 NN
Rozbalit Rozbalit vše Re: bash podminka
Ikazna v perlu, nicmene problem bude jak rozlisis, ktery radek se uz kontroloval a ktery ne ?
#!/usr/bin/perl

$string = '12345 foo bar.';

if ( $string =~ /^\d+\ .*$/) {
	print 'ok';
}
18.10.2012 17:41 camel1cz | skóre: 25
Rozbalit Rozbalit vše Re: bash podminka
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nešlo by použít logcheck a jen si do něho napsat vlastní pravidlo/-a? To mi příjde hodně čisté a snadné řešení...
19.10.2012 01:52 Delaunay | skóre: 17 | blog:
Rozbalit Rozbalit vše Re: bash podminka
Odpovědět | | Sbalit | Link | Blokovat | Admin
No jestli jsem to pochopil správně, tak bych si poznamenával počet řádků logu do souboru a podminku bych nahradil sed-em.

Konfigurace:
LOGFILE=/var/log/mylog.log
LCHKFILE=/tmp/logcheck-lines
EMADDR=pxvos@email.com
Skript:
LCNT=`cat $LCHKFILE 2>/dev/null`
DELCMD="1,${LCNT}d"
[ ${LCNT:-0} -eq 0 ] && DELCMD=""
cat $LOGFILE | wc -l > $LCHKFILE
[ "`sed "${DELCMD};/^[0-9]\{1,\} .*/d;" $LOGFILE | wc -l`" -ge 1 ] && $(echo | mail -s 'notification' $EMADDR)
22.10.2012 13:07 pxvos | skóre: 4
Rozbalit Rozbalit vše Re: bash podminka
Odpovědět | | Sbalit | Link | Blokovat | Admin
diky moc za rady, prozatim jsem tu hlasku vyfiltroval grep -v :-D ale jeste to budu ladit

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.