Je veux faire un calcul simple du nombre de lignes par minute ajoutées à un fichier journal.
Je souhaite également enregistrer le décompte pour chaque seconde.
Ce dont j'ai besoin est la sortie de la commande suivante sous forme de liste qui sera mise à jour toutes les secondes:
watch -n1 'wc -l my.log'
Comment sortir la 'mise à jour' de la commande 'watch' sous forme de liste?
wait
- essayez simplementwatch -n 1 "sleep 5"
.watch
était utile, mais cela ne vous donne même pas cela, donc votre solution est aussi bonne que celle basée sur une montre, mais ni l'une ni l'autre ne répond avec une grande précision à la question "taux de croissance d'un fichier journal" .watch
a une-p
option qui le fera correctement, si possible (évidemment, vous ne pouvez pas exécuter une commande qui prend 5 secondes toutes les 1 secondes, si vous n'êtes pas autorisé à en faire plusieurs simultanément). Je sais, je l'ai écrit :-PUne vieille question, mais je viens de trouver une réponse très simple:
Cela exécutera
wc
chaque seconde, ajoutera sa sortie au fichier statistics.log et l'affichera également à l'écran.Ainsi, vous vous retrouverez avec un fichier rempli de nombres, représentant le nombre successif de lignes de
my.log
.la source
watch "($MYCMD | tee -a $MYLOG)"
paswatch "($MYCMD)" | tee -a $MYLOG
. Si vous vous trompez comme je l'ai fait, la sortie va être très très déroutante. Une autre chose à noter ici est que cette commande n'ajoute pas l'horodatage de l'exécution de chaque commande par défaut, donc la réponse avec la boucle pourrait toujours mieux fonctionner pour vous.Que diriez-vous
la source
Essayez ce qui suit:
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 "while commande, do sleep" 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
Vous pouvez créer un script qui le fait pour vous. J'ai appelé le mien
keep
(comme, continuez à le faire) et l' ai mis sur lebin
chemin.Voici mon script:
la source
"$@"
pour exécuter la commande (arguments) au lieu de non cité$*
. De cette façon, le shell conservera les arguments cités, etc. comme l'utilisateur s'y attendrait. FTFY.