lsof devrait donner tous les fichiers ouverts pour un ensemble de pids
J'ai 30 instances d'un processus en cours d'exécution sur un serveur et que vous voulez enregistrer les fichiers ouverts pour chaque processus pour l'analyse.
J'ai exécuté la commande suivante:
* ps auwwx | grep PROG_NAME | awk '{print $2}' | xargs lsof -p | less
Elle plaintes qui, "lsof: statut d'erreur : No such file or directory"
Cependant, si je lance lsof -p < pid >
il me donne la liste des fichiers ouverts par le processus . Comment puis-je obtenir une liste de tous les fichiers ouverts pour tous 30 des instances du processus sur une machine FreeBSD.
De plus, je ne veux pas les bibliothèques partagées pour être énumérés. Si je ne -d "^txt"
il n'est pas en montrant quelques autres fichiers db qui je veux être montré. Est-il un autre moyen de filtrer les .donc les fichiers?
source d'informationauteur user1071840
Vous devez vous connecter pour publier un commentaire.
La
lsof -p
option est une liste séparée par des virgules des Pid. La façon dont vous utilisezxargs
va passer le pid que séparer les arguments conduisant certains à être interprétés comme des noms de fichiers.Essayer
lsof -p $(your grep | tr '\012' ,)
Qui va avoir une virgule, je ne suis pas sûr silsof
prendra soin de vous mais vous pourriezsed
hors de si nécessaire.Vous pouvez utiliser
xargs -L1 lsof -p
pour exécuterlsof
une fois par pid.Encore mieux: utiliser
lsof -c
à la liste de tous les fichiers de commandes correspondent à un modèle spécifique: