Weet hier iemand hoe ik via een bash of php script kan controleren of proces "/usr/local/bin/blaat" draait? Dus dat ik kan zoeken op een hele string + parameters die ik zelf kan instellen? Iets met 'ps aux | grep $needle' if () fi; ofzo![]()
Likes: 0
Weet hier iemand hoe ik via een bash of php script kan controleren of proces "/usr/local/bin/blaat" draait? Dus dat ik kan zoeken op een hele string + parameters die ik zelf kan instellen? Iets met 'ps aux | grep $needle' if () fi; ofzo![]()
zoeits bedoel je?
ps -efa | grep "[r]s y n c --daemonss" >/dev/null || echo "r s y n c draait niet"
(maar dan zonder spaties.... grrrr @ mod_security .....)
Juist, zoiets. Maar dan wil ik er nog een soort if else in hebben zodat ik kan zeggen
if proces draait niet:
start nieuwe run op
elseif proces draait wel:
exit bashscript.
Kijk eens naar SIM (http://rfxnetworks.com/sim.php), een beetje aanpassen en je kan 't elk proces dat je wilt laten monitoren![]()
Even snel voorbeeldje:
ofCode:#/bin/bash actie() { /etc/init.d/startme start } ps -efa | grep "[r]s y n c --daemonss" >/dev/null || actie
Code:#/bin/bash wel() { echo jaaaa } niet() { echo neeee } kweetniet() { echo huh } ps -efa | grep [q]mail-send >/dev/null case $? in 0) wel ;; 1) niet ;; *) kweetniet ;; esac
Hm.. het eerste script doet helemaal niets en het tweede geeft altijd jaaaa weer terwijl hij soms helemaal niet draait
@Peter: bedankt, maar ik heb liever een simpel bashscriptje aangezien ik meerdere scripts heb en alles liever apart houd..
heb je ook wel de [ ] meegenomen ? die heb je wel nodigOrigineel geplaatst door WH-Tim
Hm.. het eerste script doet helemaal niets en het tweede geeft altijd jaaaa weer terwijl hij soms helemaal niet draait
2de scriptje werkt gegarandeert (linux, solaris, hpux)
bla=` ... | grep -v grep |wc -l `
if [ ${bla} -eq 0 ] ; then
...
else
...
fi
/usr/local/bin/php -f cron.php
is het proces. waar moet die [ ] dan staan?
Whereever u wantOrigineel geplaatst door WH-Tim
/usr/local/bin/php -f cron.php
is het proces. waar moet die [ ] dan staan?
bv /usr/local/bin/[p]hp -f cron.php
de [ ] zorgt er hier overigens alleen maar voor dat je geen "grep -v grep" hoeft te doen, is een stuk netter![]()
Kan dit aan mijn bashversie liggen dat hij niet werkt?
Lijkt me op zich sterk, heb er nog nooit problemen mee gehad met zowel bash en ksh. (voor de csh moet je even enkele quotes gebruiken bij de grep).
Werkt de grep met [ ] niet? of het scriptje?
simpele check (deze zou op via elke bash/ksh moeten werken:
Als je het script uitvoert via:Code:ps -efa | grep [c]rond
Zie je dan errors/rare dingen ?Code:sh -x ./scriptnaam
test1.sh:
+ ps -efa#/bin/bash
actie()
{
# /etc/init.d/startme start
echo draaitniet-start-nu
}
ps -efa | grep /usr/local/bin/[p]hp -f cron.php >/dev/null || actie
+ grep /usr/local/bin/php -f cron.php
test.sh:
+ ps -efa#/bin/bash
wel()
{
echo jaaaa
}
niet()
{
echo neeee
}
kweetniet()
{
echo huh
}
ps -efa | grep /usr/local/bin/[p]hp -f cron.php >/dev/null
case $? in
0) wel ;;
1) niet ;;
*) kweetniet ;;
esac
+ grep /usr/local/bin/php -f cron.php
+ wel
+ echo jaaaa
jaaaa
Maar er draait helemaal geen proces dat zo heet..
# ps -efa | grep [C]ROND
root 2048 2010 0 Jul19 ? 00:00:00 CROND
root 18720 2010 0 08:00 ? 00:00:00 CROND
root 3648 2010 0 10:00 ? 00:00:00 CROND
Als er spaties in je string staan, even met quotes er omheen![]()
Bedankt royen! Werkt perfect nu![]()