[Shell] Ecrire dans un fichier pendant l'execution du processus
Résolu
Borket
-
Borket -
Borket -
Bonjour,
J'ai écrit un script en shell du type
Mais le script écrit dans le fichier que lorsque je tue le processus, et je voudrais plutôt qu'il écrive pendant le processus.
Est-ce que c'est possible?
Merci d'avance
J'ai écrit un script en shell du type
commande >> fichierpour écrire le résultat dans un fichier, puis j'ai fait en sorte qu'il s’exécute au démarrage.
Mais le script écrit dans le fichier que lorsque je tue le processus, et je voudrais plutôt qu'il écrive pendant le processus.
Est-ce que c'est possible?
Merci d'avance
A voir également:
- Ecrire dans un fichier shell
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Classic shell - Télécharger - Personnalisation
2 réponses
Hello,
oui tout est possible.
C'est quoi la commande que tu rediriges et qui ne s'écrit pas. Normalement au pire en faisant
oui tout est possible.
C'est quoi la commande que tu rediriges et qui ne s'écrit pas. Normalement au pire en faisant
tail -f /chemin_vers/log_Nametu dois être en mesure de voir un log en cours d'écriture ...
Hello,
Chez moi :
sur une ligne fonctionne ....
You may stop me but you can't stop us all ;-)
Chez moi :
tshark 2>&1 | { while read line;do echo "$line" | grep "Chaine_cherchée";done; }.
sur une ligne fonctionne ....
You may stop me but you can't stop us all ;-)
... et
Pour pouvoir lancer cette ligne dans une console et dans la même console taper :
Pour voir comment le fichier s'écrit ...
Mais chez moi tout marche, même :
Dans un shell script ça donnerait :
(chmod 775 testTshark.sh)
et pour le lancer :
et pour voir comment le log grossit :
et effectivement
le
tshark 2>&1 | { while read line;do echo "$line" | grep "Chaine_cherchée";done; } >> fichier.txt &
Pour pouvoir lancer cette ligne dans une console et dans la même console taper :
tail -f fichier.txt
Pour voir comment le fichier s'écrit ...
Mais chez moi tout marche, même :
tshark | grep "chaine_cherchée"
Dans un shell script ça donnerait :
#!/bin/bash
#
# Script test grep sur tshark (testTshark.sh)
# Appel par 'testTshark.sh chaineRecherché &'
# ou 'testTshark.sh "chaine Recherché" &' si espace dans la chaine recherché
#
tshark 2>&1 | grep "$1" >> testTshark.log
(chmod 775 testTshark.sh)
et pour le lancer :
./testTshark.sh chaine_recherchée &
et pour voir comment le log grossit :
tail -f testTshark.log(CTRL+C pour sortir)
et effectivement
pkill tsharkou
pkill testTshark.shpour arrêter
le
&après le lancement de commande est important car c'est lui qui fait passer le process en background et rends la main pour pouvoir continuer a taper des trucs dans la console ...
Pour résumer il s'agit d'une capture de trame avec tshark et un grep pour récupérer uniquement ce qui m'interesse.
Mais le fichier de log reste a 0 octets et ne donne rien jusqu’à que je fasse
Plusieurs syntaxe sont possible du "|" au "<<<" jusqu'à une boucle
Pour les trucs récalcitrants ...
Là, sans plus d'info je dirais que ton grep attends les données a filtrer ...