جدول محتوایی

دستور lsof

در این مقاله قصد داریم دستور lsof را با مثال های کاربردی بررسی کنیم.

lsof به معنای “LiSt Open Files” برای یافتن اینکه کدام فایل ها با کدام فرآیند باز می شوند استفاده می شود.

 

دستور lsof

 

همانطور که همه ما می دانیم لینوکس/یونیکس همه چیز را به عنوان یک فایل در نظر می گیرد (سوکت ها، دایرکتوری ها، دستگاه ها و غیره). یکی از دلایل استفاده از دستور lsof زمانی است که نمی توان دیسک را جدا کرد زیرا می گوید فایل ها در حال استفاده هستند. با کمک این دستور به راحتی می توانیم فایل های در حال استفاده را شناسایی کنیم.

خرید vps ایران

1. لیست کردن تمام فایل های باز با دستور lsof

با وارد کردن دستور زیر لیستی طولانی از فایل های باز را نشان می دهد که برخی از آنها برای درک بهتر استخراج شده اند. ستون هایی مانند Command، PID، USER، FD، TYPE و غیره را نمایش می دهد.

# lsof

COMMAND    PID      USER   FD      TYPE     DEVICE  SIZE/OFF       NODE NAME
init         1      root  cwd      DIR      253,0      4096          2 /

 

بیایید ستون های FD & TYPE را دقیق‌تر بررسی کنیم.

FD – مخفف یک توصیفگر فایل است و ممکن است برخی از مقادیر را به صورت زیر ببیند:

  • cwd – دایرکتوری کاری فعلی
  • rtd – دایرکتوری روت
  • txt – متن برنامه
  • mem – فایل نوشته شده در مموری

همچنین در اعداد ستون FD مانند 1u توصیفگر فایل واقعی است و پس از آن u,r,w حالت آن به صورت زیر است:

  • r – برای دسترسی خواندن
  • w – برای دسترسی به نوشتن
  • u – برای دسترسی خواندن و نوشتن

TYPE – فایل ها و شناسایی آن.

  • DIR – دایرکتوری
  • REG – فایل معمولی
  • CHR – فایل ویژه کاراکتر
  • FIFO – اولین در اولین خروج

 

2. لیست فایل های باز شده خاص کاربر

دستور زیر لیستی از تمامی فایل های باز شده کاربر iranica را نمایش می دهد.

# lsof -u iranica

COMMAND  PID    USER   FD   TYPE     DEVICE SIZE/OFF   NODE NAME

 

3. مشاهده فرایند های در حال اجرا در یک پورت خاص

برای اطلاع از تمامی فرآیندهای در حال اجرا لینوکس یک پورت خاص، کافیست از دستور زیر با گزینه -i استفاده کنید. مثال زیر تمام فرآیندهای در حال اجرا پورت 22 را فهرست می کند.

# lsof -i TCP:22

 

4. لیست کردن فایل های باز IPv6 و IPv4

در مثال زیر فقط فایل های شبکه IPv4 و IPv6 با دستورات جداگانه باز می شوند.

# lsof -i 4
# lsof -i 6

 

5. فهرست فایل های باز از محدوده پورت TCP 1-1024

برای لیست کردن تمام فرآیندهای در حال اجرا فایل های باز TCP Port از رنج 1-1024 میتوان اینگونه از دستور lsof استفاده کرد.

# lsof -i TCP:1-1024

 

6. حذف کاربر با کاراکتر «^»

در اینجا، ما کاربر روت را حذف کرده ایم. همانطور که در بالا میبینید می توانید با استفاده از “^” یک کاربر خاص را حذف کنید.

# lsof -i -u^root

 

7. ببینید چه کسی به دنبال چه فایل‌ها و دستوراتی است؟

مثال زیر نشان می دهد که کاربر iranica از دستوراتی مانند دایرکتوری ping و /etc استفاده می کند.

# lsof -i -u iranica

COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    1839 tecmint  cwd    DIR  253,0    12288   15 /etc
ping    2525 tecmint  cwd    DIR  253,0    12288   15 /etc

 

8. لیست تمام اتصالات شبکه

دستور زیر با گزینه “-i” لیست تمام اتصالات شبکه “LISTENING and ESTABLISHED” را نشان می دهد.

# lsof -i

 

9. جستجو بر اساس PID

مثال زیر فقط نشان می دهد که چه کسی PID 1 [One] است.

# lsof -p 1

 

10. توقف تمام فعالیت های یک کاربر خاص

گاهی اوقات ممکن است مجبور شوید تمام فرآیندها را برای یک کاربر خاص از بین ببرید. دستور زیر تمام فرآیندهای کاربر Iranica را از بین می برد.

# kill -9 `lsof -t -u iranica`

 

توجه: در اینجا، نمی توان نمونه هایی از همه گزینه های موجود ارائه داد، این راهنما فقط برای نشان دادن سینتکس استفاده از دستور lsof است. اگر این آموزش برایتان مفید بود، لطفا در بخش نظرات، نظر خود را در مورد این آموزش کامنت کنید.

 

15رای - امتیاز 5 ممنون از امتیازی که دادید..!

دسته بندی شده در: