|
| Bange for mit eget shell-script. Heh! Fra : Heine Laursen |
Dato : 13-12-00 00:59 |
|
Nu har jeg forsøgt, at lave et lille script der generere en log fil, til
min news server. Scriptet skal køres igennem cron, derfor regner jeg med
alt output bliver sendt til root via mail hvis der skulde opstå en fejl!
Nu er jeg bare bange for variablen $newscheck sætter omfattende process
igang da den bliver hentet et par gange. Har jeg ret i det?
filen /var/log/newsdl.log er en fil der bliver oprettet når der først
bliver skrevet til den (Sådan har jeg da forstået det)
Jeg har ingen ide om hvad der rent faktisk sker når scriptet køre.... Der
er jo en rm -f kommando. Uha!! Kuldegysninger!
Mit lille script ser således ud!!
#!/bin/bash
if [ -f "/var/lock/news.script.lock"]
then
touch /var/lock/news.script.lock
up=$(/sbin/ifconfig |/bin/grep ppp)
if [ -z "${up}" ]
then
echo ppp forbindelsen er ikke estableret > /dev/null
else
echo ppp er forbindelsen er estableret > /dev/null
newscheck=$(/usr/local/sbin/fetchnews -vvv)
greping=$($newscheck |grep "... failed.")
dato=$(date)
cat $date >> /var/log/newsdl.log
if [ -z "${greping}" ]
then
cat --Success
cat $newscheck >> /var/log/newsdl.log
else
cat --Error >> /var/log/newsdl.log
cat $newscheck >> /var/log/newsdl.log
echo $newscheck
fi
fi
rm -f /var/lock/news.script.lock
else
exit 0
fi
På forhånd, mange tak.
--
Mvh
Heine Laursen
Replace @Linux.dk with @pokerface.dk to mail
| |
Klaus Alexander Seis~ (13-12-2000)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 13-12-00 07:15 |
|
Heine L skrev:
> if [ -f "/var/lock/news.script.lock"]
> then
> touch /var/lock/news.script.lock
Her ville jeg vælge at sætte en trap, så lock-filen bliver fjernet
automatisk hvis der opstår fejl undervejs:
touch /var/lock/news.script.lock
trap 'rm -f /var/lock/news.script.lock >/dev/null 2>&1' 0 1 2 3 15
> dato=$(date)
> cat $date >> /var/log/newsdl.log
Kan med fordel erstattes af
date >> /var/log/newsdl.log
med mindre du satser på at få månedens "Useless Use of Cat Award".
> cat --Success
> cat --Error >> /var/log/newsdl.log
De switche har min cat ikke, hvad er hensigten? Mener du echo?
// Klaus
--
><>°
| |
Heine Laursen (13-12-2000)
| Kommentar Fra : Heine Laursen |
Dato : 13-12-00 20:05 |
|
On Wed, 13 Dec 2000, Klaus Alexander Seistrup wrote:
> Heine L skrev:
>
> > if [ -f "/var/lock/news.script.lock"]
> > then
> > touch /var/lock/news.script.lock
>
> Her ville jeg vælge at sætte en trap, så lock-filen bliver fjernet
> automatisk hvis der opstår fejl undervejs:
>
> touch /var/lock/news.script.lock
> trap 'rm -f /var/lock/news.script.lock >/dev/null 2>&1' 0 1 2 3 15
Okay. God ide. Jeg forsøgte, at lure et andet script af, hvordan det satte
en lock file. Men da jeg ikke rigtig forstod trap lod jeg være med at tage
denne med
> > dato=$(date)
> > cat $date >> /var/log/newsdl.log
>
> Kan med fordel erstattes af
>
> date >> /var/log/newsdl.log
>
> med mindre du satser på at få månedens "Useless Use of Cat Award".
Nææ. Det var nu ikke lige det jeg satsede på. Men jeg er stadig ny så bær
over med mine fejl!
> > cat --Success
> > cat --Error >> /var/log/newsdl.log
>
> De switche har min cat ikke, hvad er hensigten? Mener du echo?
Heh. der er måske en "The most stupised thing you can do whit cat award"
Min hensigt var såmænd bare at der skulde stå --success el --Error i selve
log filen. Jeg kan godt se nu at det ligner switche.
--
Mvh
Heine Laursen
Replace @Linux.dk with @pokerface.dk to mail
| |
Klaus Alexander Seis~ (13-12-2000)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 13-12-00 20:36 |
|
Heine skrev:
>>> cat --Success
>>> cat --Error >> /var/log/newsdl.log
>>
>> De switche har min cat ikke, hvad er hensigten? Mener du echo?
>
> Heh. der er måske en "The most stupised thing you can do whit cat
> award"
>
> Min hensigt var såmænd bare at der skulde stå --success el --Error
> i selve log filen. Jeg kan godt se nu at det ligner switche.
Man kunne lave noget à la
echo "$(date +'%x %T') ${STATUS}" >> /var/log/newsdl.log
eller
logger -t newsdl ${STATUS}
hvor STATUS er en environment-variabel der inderholder den ønskede
meddelelse. I tilfældet med logger(1) bliver meddelsen skrevet til
den fil syslog logger til (fx /var/log/messages) med et tag "newsdl"
så man hurtigt kan grep'e efter det.
// Klaus
--
><>°
| |
|
|