Toon posts:

{shell script} [ 'return true value?' ]

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo tweakers,

Ik ben bezig met een shell scriptje met daarin de test:

if [ ' ps -ax | grep ai' ]; then echo is running; fi

Nu werkt het bovenstaande niet,,, duidelijk maar
hoe zou ik het zo kunnen maken dat de testwaarde
van [ balbla ] true or false is afhankelijk of
het process gestart is of niet ?

Eventueel de waarde in een var drukken ... ?

grtx

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Misschien zoiets:
code:
1
2
3
if [ -n 'pstree | grep ai' ]; then
    echo "iets met ai is running"
fi

PS. Ik gebruik pstree hier, want toen ik ps -ax deed, kreeg ik altijd waar, omdat dan 'grep ai' ook in de proceslijst staat.

[edit]
Oh, nu ik met andere dingen test werkt het niet helemaal goed.

Verwijderd

Topicstarter
Hai RdeTuinman,

Ik denk niet dat gaat werken het process waar het om gaat is portsentry. Deze kan ik niet anders zichtbaar maken dat met een ps -ax. Ik denk dat je hier al de fout hebt. Maar hoe los ik het op zodat ik dei check kan volbrengen.
code:
1
2
3
ps -ax > /tmp/$$tempValue
RightValue='cat /tmp/$$tempValue'
if [ $RightValue != NULL ]; then echo blaaat; fi

grtzz

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 21:24

pistole

Frutter

Op maandag 29 oktober 2001 13:35 schreef RdeTuinman het volgende:
Misschien zoiets:
code:
1
2
3
if [ -n 'pstree | grep ai' ]; then
    echo "iets met ai is running"
fi

PS. Ik gebruik pstree hier, want toen ik ps -ax deed, kreeg ik altijd waar, omdat dan 'grep ai' ook in de proceslijst staat.

[edit]
Oh, nu ik met andere dingen test werkt het niet helemaal goed.
je zou bovenstaande kunnen uitbreiden met bijvoorbeeld een grep |-v grep zodat alle grep entries verwijderd worden.

Ik frut, dus ik epibreer


  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Nog een poging:
code:
1
2
3
4
5
6
7
#!/bin/bash
#Test
RESULT=`ps -ax | grep portsentry | grep -v grep`

if [ "$RESULT" != "" ]; then
    echo "portsentry aanwezig"
fi

Ik zat ook even te rommelen met die quotjes bij RESULT, maar dat moeten `` zijn (onder de tilde ~)
Dus niet '' onder "

Verwijderd

Topicstarter
...

Ziet er goed uit, die code, echter heb ik nu geen tijd meer om te testen, Ik kom er l8ter (vanavond) op terug.

thanx Conar

Verwijderd

Conar: Ik ben bezig met een shell scriptje met daarin de test [om te kijken of een proces draait]
code:
1
2
3
4
5
6
7
#!/bin/bash

if [ `ps -aux | grep -c ai` ]; then
    echo "Running..."
else
    echo "Not running..."
fi

Verwijderd

Topicstarter
The best of 2 ;)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 if [ '/usr/local/bin/portsentry ' ] && 
[ -x '/usr/bin/killall' ] && 
[ -h '/etc/portsentry.conf' ]; then

        DIR='/usr/local/bin/'; RESULT=`ps -aux | grep -c portsentry`; PAIR=2

          if [ "$RESULT" -eq "$PAIR" ]; then
          echo Portsentry TCP / UDP about to being killed, press CTL-C to abort.
          sleep 1; echo 3; sleep 1; echo 2; sleep 1; echo 1; sleep 1
          /usr/bin/killall -TERM portsentry 2> /dev/null
          echo Portsentry TCP / UDP Stoped.
            
          else
            
          echo
          echo Portsentry TCP / UDP about to be started, press CTL-C to abort.
          sleep 1; echo 3; sleep 1; echo 2; sleep 1; echo 1; sleep 1
          (`${DIR}portsentry -tcp &`); (`${DIR}portsentry -udp`)
          RESULT1=`ps -ax | grep portsentry | grep tcp | grep -v grep`
          RESULT2=`ps -ax | grep portsentry | grep udp | grep -v grep`                       
            if [ "$RESULT1" != "" ] && [ "$RESULT2" != "" ]; then                           
            echo Portsentry TCP / UDP Started.                                       
            fi
         fi                                                             
         fi

grtx Conar

  • RvdH
  • Registratie: Juni 1999
  • Laatst online: 28-07 15:42

RvdH

Uitvinder van RickRAID

Als portsentry ergens een .pid file neergooit, zou je kunnen checken of dat bestand bestaat. Zo ja, dan draait portsentry, zo nee, dan niet :)

Verwijderd

Topicstarter
Op maandag 29 oktober 2001 23:22 schreef RickJansen het volgende:
Als portsentry ergens een .pid file neergooit, zou je kunnen checken of dat bestand bestaat. Zo ja, dan draait portsentry, zo nee, dan niet :)
Zou kunnen maar dan:
killall -TERM portsentry, && rm /var/run/nopid (niet echt sierlijk)

En over
code:
1
2
3
RESULT1=`ps -ax | grep portsentry | grep tcp | grep -v grep`
          RESULT2=`ps -ax | grep portsentry | grep udp | grep -v grep`                       
            if [ "$RESULT1" != "" ] && [ "$RESULT2" != "" ]; then

heb ik mijn twijfels.... vanavond ga ik weer verder met het bovenstaande,

grtx
Pagina: 1