mio script è il seguenteAggiunta di data e ora per il file di log in script bash
if ps ax | grep -v grep | grep ./program > /dev/null
then
exit
else
echo "---------------------------------------------------" >> Debug.log
echo "Starting program at: $(date)" >> Debug.log
./program >> Debug.log 2>&1
fi
exit
Via crontab, questo script viene eseguito ogni minuto. Controlla se un determinato programma è in esecuzione, se lo è, ottimo, in caso contrario, lo avvia.
Ora vorrei aggiungere i timestamp ogni volta che lo script viene eseguito in Debug.log se ha trovato ./program in esecuzione. Così sotto la linea then
, ho aggiunto:
echo "Time: $(date)" >> Debug.log
Questo comando non emette nulla a debug.log. Funziona comunque direttamente dalla riga di comando. Perché è così, e posso rimediare al problema?
Non posso dirti perché, ma "data +" Ora:% C ">> Debug.log' sembrerebbe fare quello che vuoi, probabilmente in modo più trasparente e succinto. – tripleee
Inoltre, 'grep thing | grep -v grep' di solito può essere rifattorizzato in qualcosa come 'grep [t] hing' dove l'idea è di usare una regex che non corrisponde a se stessa. – tripleee
Nota che stai trasmettendo a 'Debug.log', mentre dovresti indicare il percorso completo di quel file. – fedorqui