Bashscript [LÖST]
Bashscript [LÖST]
Tjo, håller på att sätta ihop ett script,
Dator1 pingar Dator2, om Dator2 svarar händer inget med Dator1, men ifall den inte svarar så ska Dator1 stänga av sig om 20min.
Men ifall Dator2 svarar inom dom där 20min så ska den inte stänga av sig.
Hoppas ni förstår vad jag menar, lite rörigt kanske.
Mina skills när det gäller bash är inte så höga så skulle vara väldigt glad ifall någon kunde hjälpa mig,
EDIT: Har kommit en bit på vägen
#!/bin/sh
alive=`/usr/local/sbin/fping 10.32.0.9 | grep alive | wc -l`
date=`date`
if [ $alive -eq 1 ]; then
/sbin/shutdown -c && exit;
fi
/sbin/shutdown -h +20
Nu verkar det funka som det ska.
Dator1 pingar Dator2, om Dator2 svarar händer inget med Dator1, men ifall den inte svarar så ska Dator1 stänga av sig om 20min.
Men ifall Dator2 svarar inom dom där 20min så ska den inte stänga av sig.
Hoppas ni förstår vad jag menar, lite rörigt kanske.
Mina skills när det gäller bash är inte så höga så skulle vara väldigt glad ifall någon kunde hjälpa mig,
EDIT: Har kommit en bit på vägen
#!/bin/sh
alive=`/usr/local/sbin/fping 10.32.0.9 | grep alive | wc -l`
date=`date`
if [ $alive -eq 1 ]; then
/sbin/shutdown -c && exit;
fi
/sbin/shutdown -h +20
Nu verkar det funka som det ska.
-
- Inlägg: 2157
- Blev medlem: 25 okt 2007, 14:00
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Luleå
Re: Bashscript
Ett tips när man lägger in kod är att använda code tagarna.Dexxa skrev:#!/bin/sh
alive=`/usr/local/sbin/fping 10.32.0.9 | grep alive | wc -l`
date=`date`
if [ $alive -eq 1 ]; then
/sbin/shutdown -c && exit;
fi
/sbin/shutdown -h +20
Kod: Markera allt
#!/bin/sh
alive=`/usr/local/sbin/fping 10.32.0.9 | grep alive | wc -l`
date=`date`
if [ $alive -eq 1 ]; then
/sbin/shutdown -c && exit;
fi
/sbin/shutdown -h +20
Kod: Markera allt
#!/bin/sh
alive=`/usr/local/sbin/fping 10.32.0.9 | grep alive | wc -l`
if [ $alive -eq 1 ];
then
/sbin/shutdown -c
else
/sbin/shutdown -h +20
fi
exit 0
Re: Bashscript
Annars kan du testa direkt på exitkoden från fping.
Kod: Markera allt
if fping -q 10.32.0.9; then
gör magiska saker
fi
-
- Inlägg: 2157
- Blev medlem: 25 okt 2007, 14:00
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Luleå
Re: Bashscript
Problemet som jag ser det är att han ändå måste ha en else sats så spelar ingen större roll, antar att skriptet kommer köras var 5e minut eller så... om hosten plötsligt vaknar till liv igen så ska den avsluta avstängningen.andol skrev:Annars kan du testa direkt på exitkoden från fping.
Kod: Markera allt
if fping -q 10.32.0.9; then gör magiska saker fi
Fast skriptet kommer ju gå lite snabbare på ditt sätt

Re: Bashscript
Jovisst vill man ha en else-sats.
Mitt kodsnutt handlade bara om att byta ut konstruktionen alive=`kommandoharrang`.
Mitt kodsnutt handlade bara om att byta ut konstruktionen alive=`kommandoharrang`.
-
- Inlägg: 2157
- Blev medlem: 25 okt 2007, 14:00
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Luleå
Re: Bashscript
Kom på detandol skrev:Jovisst vill man ha en else-sats.
Mitt kodsnutt handlade bara om att byta ut konstruktionen alive=`kommandoharrang`.


Re: Bashscript
Tack så mycket för all hjälp,
EDIT:
Den här kommer inte funka så bra va
? somsagt, försöker göra så att ifall datorn svarar på ping inom dom där 20min så ska shutdownen avbrytas.. och det har jag ingen aning om hur jag ska göra.
EDIT:
Kod: Markera allt
#!/bin/sh
alive=`/usr/local/sbin/fping -q 10.32.0.9 | grep alive | wc -l`
if [ $alive -eq 1 ];
then
ps=`/bin/ps aux | grep shutdown -h +20 | wc -l`
if [ $ps -eq 1 ];
then
/bin/kill $(grep /sbin/shutdown -h +20)
else
exit;
fi
else
/sbin/shutdown -h +20
fi
exit 0

-
- Inlägg: 2157
- Blev medlem: 25 okt 2007, 14:00
- OS: Ubuntu
- Utgåva: 22.04 Jammy Jellyfish LTS
- Ort: Luleå
Re: Bashscript
Kod: Markera allt
#!/bin/sh
if fping -q 10.32.0.9;
then
/sbin/shutdown -c
else
/sbin/shutdown -h +20
fi
exit 0
Funkar det inte att köra shutdown -c? eller varför försöker du döda processen?
Ska det stå +20 och inte bara 20?
Re: Bashscript
Ja, Jag kör scriptet i cronjob. anledningen till att jag kör +20 är att freebsd vill att det ska vara så för att funkaKiviE skrev: Kommer att fungera men du måste ju köra skriptet i ett cronjob.
Funkar det inte att köra shutdown -c? eller varför försöker du döda processen?
Ska det stå +20 och inte bara 20?

EDIT: kom på att det är lite smartare att köra /usr/bin/pkill shutdown istället för /bin/kill $(grep /sbin/shutdown -h +20)
EDIT2: Nu funkar sciptet precis som jag vill, tack för all hjälp, så här ser det ut för tillfället
Kod: Markera allt
#!/bin/sh
if /usr/local/sbin/fping -q 10.32.0.1;
then
/usr/bin/pkill shutdown
else
/sbin/shutdown -h +20
fi
exit 0