lsof
منظور از List Open Files , lsof مي باشد.
اين دستور براي نمايش و گزارش ليستي از فايلهاي باز بروي سيستم و پروسه هايي كه آنها را باز كرده اند، به كار مي رود.
فايلهاي باز بروي يك سيستم مي تواند شامل فايلهاي موجود بروي يك ديسك، socket هاي شبكه ، device هاي استفاده شده توسط پروسه ها، فايلهاي كتابخانه اي و … باشد.
در صورت اجراي lsof بدون پارامتر ، مي توانيم ليست تمام فايلهاي باز بروي سيستم و پروسه هايي كه از آنها استفاده مي كنند را مشاهده كنيم.
lsof
همچينين مي توانيم با استفاده از اين دستور بررسي كنيم كه چه كسي دارد از فايل مورد نظرمان استفاده مي كند. مثال :
lsof /etc/passwd
نتیجه اجرای دستور مشابه زیر خواهد بود :
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python 2997 Farzaneh 9u REG 8,3 2233 189231 /etc/passwd
نكته : بهتر است اين دستور توسط كاربر root اجرا شود تا امكان دسترسي و مشاهده اطلاعات كامل فايلها را داشته باشيم.
Options
i : برای نمایش socket های شبکه به کار می رود، روبروی i می توانیم شماره پورت، آدرس یا پروتکل مور د نظر خود را مشخص کنیم. مثال :
lsof -i:80
در مثال بالا می خواهیم internet socket های در حال استفاده ای که از پورت 80 استفاده می کنند را مشاهده کنیم. نتیجه اجرای این دستور مشابه زیر خواهد بود :
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME firefox 3049 Farzaneh 18u IPv4 22102 0t0 TCP 89.165.113.252:57817->83.136.12.44:http (ESTABLISHED)
U : برای مشاهده unix socket های باز موجود بروی سیستم بکار می رود:
lsof -U
u : از u برای مشخص کردن فایلهای باز ی که توسط یک کاربر خاص استفاده شده است، استفاده می کنیم:
[lsof -u [username
c : در صورت نوشتن کلمه ای روبروی c، می توانیم فایلهای بازی را که نام پروسه آنها با کلمه مورد نظر آغاز می شود را مشاهده کنیم:
[lsof -c [ProcessName
r : باعث اجرای مجدد دستور می شود، در صورت مشخص نکردن زمان، به طور پیش فرض دستور پس از هر 15 ثانیه یکبار اجرا می شود، و در صورت ذکر عددی در روبروی r، تعیین می کنیم که دستور ما در فاصله زمانی مشخصی بر حسب ثانیه اجرا شود:
[lsof -r [Time
برای مشاهده اطلاعات بیشتری در رابطه با lsof می توانید به man page این دستور مراجعه کنید.