/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
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

--
><>°

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408897
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste