Je suis un débutant sur Linux et j'essaie de regarder une commande et d'essayer de la connecter dans un fichier. j'ai essayé
watch -t -n 10 "(date '+ TIME:% H:% M:% S'; ps aux | grep" pattern "| wc -l)" >> logfile
et j'attends un résultat comme
TIME: 10:32:30 12
TIME: 10:32:40 18
TIME: 10:32:50 2
à stocker dans le fichier journal. Cependant, lorsque le fichier journal contient des caractères non imprimables dans. Comment puis-je obtenir ce type de sortie à partir de la commande li
ps
. Je modifierai ma réponse.Cela peut facilement être fait en utilisant
watch
aussi sans utiliser de scripts.watch -t -n 10 "(date '+TIME:%H:%M:%S' ; ps aux | grep "pattern" | wc -l) | tee -a logfile"
la source
tee -a logfile
intérieur de l'arg passé àwatch
. Très propre, merci.watch
est destiné à la sortie sur un écran. Si vous souhaitez simplement exécuter une commande toutes les X secondes, vous devez simplement utiliser une boucle de retard pour cela.la source
watch est un programme ncurses, et est conçu pour être exécuté dans une fenêtre de console (non redirigée), c'est pourquoi il crée un tas de caractères non imprimables (ce sont les caractères de contrôle qui gèrent et déplacent le curseur pour redessiner l'écran).
Vous pouvez essayer de déplacer les commandes date / grep dans un script, puis appeler ce script à partir d'un cronjob.
la source
Ok, donc je l'ai mis dans un script et j'ai le code suivant:
la source
Je suis tombé sur cette question lorsque j'essayais d'obtenir une sortie meilleure / enregistrée à partir de
du -sh $data_path
. J'ai utilisé le modèle "commande while, dormir" trouvé ici, mais j'ai utilisé un AWK complexe pour donner la sortie que je voulais.En fait, je l'ai fait comme un oneliner, c'est pourquoi il y a des points-virgules. Mais pour le rendre lisible, je l'ai éclaté. La sortie ressemble à:
la source
Voici un exemple dont j'avais juste besoin pour un
watch
sur unps axf
avec un horodatage en bas de la sortie entière. Je regarde quand Apache échoue. Je devais dirigertee
pour chaque commande, leps
et ledate
.watch 'ps axf | grep --line-buffered "[a]pache2"| tee --append logfile-apache-issue.log; date '+TIME:%H:%M:%S' | tee --append logfile-apache-issue.log'
Exemple de sortie de
tail --follow logfile-apache-issue.log
sur le fichier résultant.la source