13 votes

Sous Linux, comment puis-je voir à quel point un processus est avancé dans un fichier ?

Si j'ai une commande pipée telle que

   cat myfile | processor_application

où processeur_application est quelque chose qui lit le standard, par morceaux, pour le traiter, est-il possible de voir où en est le chat dans le fichier ?

Peut-être en utilisant lsof ?

Gracias.

13voto

user9517 Points 113163

Vous pouvez utiliser pv pour ce faire, par exemple

pv file | processor_application

Comme pv passe son stdin directement à son stdout, vous n'avez pas besoin d'utiliser cat.

Editar Puisque votre programme est déjà en cours d'exécution, trouvez le PID de l'ordinateur. cat et ensuite regarder le contenu de

/proc/<PID>/io

qui vous dira combien d'octets il a écrit - wchar.

9voto

RyanBrady Points 1903

Absolument ! Visionneuse de tuyaux fait exactement ça. Il suffit de l'insérer dans votre pipeline :

cat myfile | pv | processor_application

Vous pouvez optimiser la cat dans l'exemple ci-dessus :

pv myfile | processor_application

Ce qui a l'avantage de fournir un indicateur de progression réel, puisque pv peut déterminer directement la taille de l'entrée. Si vous utilisez pv au milieu d'un pipeline, vous devez fournir vous-même la taille du fichier pour obtenir une progression précise :

input_process | pv -s 100M -p | processor_application

Consultez le site web pour plus d'options pour personnaliser le pv.

6voto

voretaq7 Points 78924

Si le processus est déjà en cours d'exécution, lsof dispose d'une fonction size/offset qui peut vous être utile - trouvez le PID du processus de chat que vous voulez inspecter et ensuite lsof -o -p [PID] .

Si le processus n'est pas encore en cours d'exécution, pv comme d'autres l'ont suggéré est une bonne option (en supposant que votre système dispose de cet utilitaire).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X