Dans de nombreux cas, "lsof" n'est pas installé sur les machines avec lesquelles je dois travailler, mais la "fonction" de lsof serait très nécessaire (ex. Sous AIX). : \
Existe-t-il des applications similaires à "lsof" dans le monde non Windows?
MISE À JOUR: par exemple: j'ai besoin de savoir quels processus utilisent le répertoire "/ home / username"?
process
open-files
administration
lsof
LanceBaynes
la source
la source
Réponses:
Je sais
fuser
, voir si est disponible sur votre système.la source
sudo fuser -vm / 2>&1 | awk '$3 ~ /f|F/' | less
peut afficher tous les processus ayant des fichiers ouverts sur le système de fichiers monté/
. Voir la page de manuel pour une aide spécifique.sudo fuser -vm / 2>&1 | awk '$3 ~ /f|F/' | while read user pid flags rest; do printf '%10s %10s %10s %s\n' $user $pid $flags "$(</proc/$pid/cmdline)"; done | less
La pierre Unix Rosetta est une bonne ressource pour ce genre de questions. Il mentionne quelques alternatives pour lsof (voir ci-dessous). Notez cependant que lsof est l'application standard de facto pour ce qu'il fait.
Si tout ce que vous voulez est de trouver les ID de processus qui ont un fichier particulier ouvert, vous pouvez les utiliser
fuser
sur n'importe quel système compatible POSIX.Sur les systèmes d'exploitation dotés d'un
/proc
répertoire, vous pouvez interroger les fichiers ouverts par un processus (à l'inverse dulsof
mode de fonctionnement le plus courant de) via les informations de/proc
. Certains systèmes d'exploitation ont des commandes pour cela:procfiles
est livré avec le système (depuis AIX 5.2). Voir aussi Mise à jour et utilisation des outils de performance AIX 5.2 et exemples de commandes lsof, pfiles, procfiles .pfiles
(existant depuis 2.5 ).la source
S'il vous arrive d'exécuter Solaris, une alternative à
lsof
, qui n'est pas installée par défaut et pourrait s'étouffer sur ZFS, estpfiles
.par exemple:
pfiles /proc/*
la source
Ma version, avec seulement un peu moins d'utilitaires:
Certes, il ne peut pas gérer tous les cas d'angle, mais fonctionne dans mon cas d'utilisation.
la source
Cela devrait faire l'affaire. Il donnera tous les mappages de descripteurs de fichiers, sauf ceux qui:
Si vous savez déjà que vous ne vous souciez que des mappages de certains programmes, vous pouvez utiliser à la place quelque chose de plus comme:
la source
Parfois
lsof
est installé dans/usr/sbin
Si cela
/usr/sbin
ne fait pas partie de votre$PATH
, vous pourriez manquer la commande même installée.Vérifiez avec
la source