To lze snadno provést pomocí watch
také bez použití jakýchkoli skriptů.
watch -t -n 10 "(date '+TIME:%H:%M:%S' ; ps aux | grep "pattern" | wc -l) | tee -a logfile"
Abyste mohli dělat to, co hledáte, měl by stačit jednoduchý skript (jak zdůraznil @Ignacio):
while true
do
echo "$(date '+TIME:%H:%M:%S') $(ps aux | grep "pattern" | wc -l)" | tee -a logfile
sleep 2
done
Používám tee
místo >>
takže můžete vidět výstup na vašem terminálu a také jej zachytit do vašeho protokolu.
watch
je určen pro výstup na displej. Pokud jednoduše chcete spustit příkaz každých X sekund, měli byste k tomu použít zpožďovací smyčku.
while true ; do somecommand ; sleep 2 ; done