Hozzászólások
Hali,
pls írjátok le nekem, hogy lehet azt megcsinálni, hogy egy parancs visszatérési értékét vizsgáljam if-ben, hogy 1-e? Úgy rémlett, hogy `` jelek közt kimenet van, különben meg visszatérési érték, szal ezt csináltam, csak így valami nem jó:
COND="fgrep ntpd"
if $COND=1; then
...
fi
Előre is köszi a választ. Cron script lesz amúgy, hogy vizsgálja, hogy fut-e az ntpd.
- A hozzászóláshoz be kell jelentkezni
Ennyi, ui a $? környezeti változó tartalmazza az utoljára lefuttatott parancs státuszát:
[code:1:624d6c0804]AzÉnParancsom;
if [[ $? = 1 ]]; then echo ezt vártam
fi
[/code:1:624d6c0804]
- A hozzászóláshoz be kell jelentkezni
[quote:5a96d0c829="Panther"]Ennyi, ui a $? környezeti változó tartalmazza az utoljára lefuttatott parancs státuszát:
[code:1:5a96d0c829]AzÉnParancsom;
if [[ $? = 1 ]]; then echo ezt vártam
fi
[/code:1:5a96d0c829]
Szupi, müxik, köszi.
- A hozzászóláshoz be kell jelentkezni
Mivel az if parancsnak feltetelként egy listát lehet megadni, és annak visszatérési érteke alapján dönt, ezért nincs is szükseg a spec. változókra.
[code:1:47302f8a11]if ps aux|frep -q ntpd; then echo szerintem fut; fi[/code:1:47302f8a11]
Egyébként, ezt nem a processzek közti kereséssel ellenőrizném, mert egy mókás user elkezd futtatni egy ntpd nevu scriptet, es maris kesz a meglepetes. Vagy nagyon percizen kell jatszadoznod a grep-pel.
Én inkább azt figyelném, hogy nyitva van-e az ntp portja:
[code:1:47302f8a11]netstat -uan| grep ":123"[/code:1:47302f8a11]
Ja, és egy jól szerkesztett paranccsal, még az if-et is megspórolhatjuk az egészből:
[code:1:47302f8a11]netstat -uan| grep -q ":123" || /etc/init.d/ntp-server start[/code:1:47302f8a11]
- A hozzászóláshoz be kell jelentkezni
[quote:c95a6a7ae6="miq"]Mivel az if parancsnak feltetelként egy listát lehet megadni, és annak visszatérési érteke alapján dönt, ezért nincs is szükseg a spec. változókra.
[code:1:c95a6a7ae6]if ps aux|frep -q ntpd; then echo szerintem fut; fi[/code:1:c95a6a7ae6]
Egyébként, ezt nem a processzek közti kereséssel ellenőrizném, mert egy mókás user elkezd futtatni egy ntpd nevu scriptet, es maris kesz a meglepetes. Vagy nagyon percizen kell jatszadoznod a grep-pel.
Én inkább azt figyelném, hogy nyitva van-e az ntp portja:
[code:1:c95a6a7ae6]netstat -uan| grep ":123"[/code:1:c95a6a7ae6]
Ja, és egy jól szerkesztett paranccsal, még az if-et is megspórolhatjuk az egészből:
[code:1:c95a6a7ae6]netstat -uan| grep -q ":123" || /etc/init.d/ntp-server start[/code:1:c95a6a7ae6]
Hm, szép. Kettes visszatérési értéket hogy szűröd ki? man grepből:
Normally, exit status is 0 if selected lines are found and 1 otherwise. But the exit status is 2 if an error occurred, unless
the -q or --quiet or --silent option is used and a selected line is found.
- A hozzászóláshoz be kell jelentkezni
if pidof /usr/sbin/akarmi >/dev/null; then echo fut; fi
- A hozzászóláshoz be kell jelentkezni
[quote:0719b8bbdd="Panther"]
Hm, szép. Kettes visszatérési értéket hogy szűröd ki? man grepből:
Normally, exit status is 0 if selected lines are found and 1 otherwise. But the exit status is 2 if an error occurred, unless
the -q or --quiet or --silent option is used and a selected line is found.
Szerintem kettes visszateresi erteket csak akkor ad, ha valami gondja van a parametereinek az ertelmezesevel. Pl. nem letezo kapcsolot hasznalsz, vagy nem letezo file-ban probalsz greppelni. Ez az eset itt nem all fent. Egyebkent pedig abban az esetben is megprobalna inditani az ntpd-t. Estetleg start helyett erdemesebb restartot hasznalni.
- A hozzászóláshoz be kell jelentkezni
[quote:03a62cff70="miq"]
Egyébként, ezt nem a processzek közti kereséssel ellenőrizném, mert egy mókás user elkezd futtatni egy ntpd nevu scriptet, es maris kesz a meglepetes. Vagy nagyon percizen kell jatszadoznod a grep-pel.
Én inkább azt figyelném, hogy nyitva van-e az ntp portja:
[code:1:03a62cff70]netstat -uan| grep ":123"[/code:1:03a62cff70]
Akkor annak a mókamesternek kitekerem a nyakát. :D
[quote:03a62cff70="miq"]
Ja, és egy jól szerkesztett paranccsal, még az if-et is megspórolhatjuk az egészből:
[code:1:03a62cff70]netstat -uan| grep -q ":123" || /etc/init.d/ntp-server start[/code:1:03a62cff70]
Ez ötletes megoldás, tetszik, szerintem majd átírom erre.
[quote:03a62cff70="vmiklos"]
if pidof /usr/sbin/akarmi >/dev/null; then echo fut; fi
Erre is gondoltam, viszont igaz, hogy Linux topicba írtam, de FreeBSD alatt csinálom, ott meg nincs pidof.
- A hozzászóláshoz be kell jelentkezni