sto lavorando su un piccolo script bash che conta quanto spesso è in esecuzione uno script con un certo nome.Conteggio semplice script bash in esecuzione processi per nome
ps -ef | grep -v grep | grep scrape_data.php | wc -l
è il codice che uso, tramite ssh emette il numero di volte scrape_data.php esegue. Ad esempio, l'output è 3 per esempio. Quindi questo funziona bene.
Ora sto cercando di fare un piccolo script che fa qualcosa quando il conteggio è minore di 1.
#!/bin/sh
if [ ps -ef | grep -v grep | grep scrape_data.php | wc -l ] -lt 1; then
exit 0
#HERE PUT CODE TO START NEW PROCESS
else
exit 0
fi
Lo script precedente è quello che ho finora, ma non funziona. Mi viene visualizzato questo errore:
[[email protected] crons]# ./check_data.sh
./check_data.sh: line 4: [: missing `]'
wc: invalid option -- e
Che cosa sto sbagliando nell'istruzione if?
grazie, ha funzionato! –
Sono su CentOS 6.5 e non sono sicuro del perché '-lt' non funzioni per me, sostituendolo con' -gt' funziona per me. – hailong