صفر و یک - برنامه نویسی - لینوکس

دست نوشته های شخصی من در مورد نرم افزار، سیستم عامل و برنامه نویسی لینوکس

صفر و یک - برنامه نویسی - لینوکس

دست نوشته های شخصی من در مورد نرم افزار، سیستم عامل و برنامه نویسی لینوکس

لیدورا یک وبلاگ تخصصی برنامه نویسی یا لینوکس نیست. بیشتر محلیه برای ثبت چیزهایی که قراره بیشتر از یه بار خونده بشن. اگه به درد شما هم خورد که زکات دانش ما پرداخت شده، شکر.

آخرین نظرات

نویسندگان

یادگیری عملی دستور lsof - قسمت اول

سه شنبه, ۱۲ شهریور ۱۳۹۲، ۰۱:۳۸ ق.ظ

دستور lsof یک دستور بسیار مفید و کاربردیه که اطلاعاتی راجع به فایل های باز و در حال پردازش در اختیارتون قرار می‌ده. lsof عموماً در بیشتر دیستروها به صورت پیش فرض نصبه اما اگه در سیستم شما نصب نبود می‌تونید با استفاده از مدیر بسته دیسترو خودتون نصبش کنید.

۱- لیست تمام فایل های باز

ali:~/ $ lsof
COMMAND    PID  TID    USER   FD      TYPE             DEVICE  SIZE/OFF    NODE NAME
systemd      1         root  cwd   unknown                                      /proc/1/cwd
systemd      1         root  rtd   unknown                                      /proc/1/root
systemd      1         root  txt   unknown                                      /proc/1/exe
systemd      1         root NOFD                                                /proc/1/fd
kthreadd     2         root  cwd   unknown                                      /proc/2/cwd
kthreadd     2         root  rtd   unknown                                      /proc/2/root
kthreadd     2         root  txt   unknown                                      /proc/2/exe
kthreadd     2         root NOFD                                                /proc/2/fd
ksoftirqd    3         root  cwd   unknown                                      /proc/3/cwd
ksoftirqd    3         root  rtd   unknown                                      /proc/3/root
ksoftirqd    3         root  txt   unknown                                      /proc/3/exe
ksoftirqd    3         root NOFD                                                /proc/3/fd

همونطوری که در خروجی بالا می‌بینید خروجی دستور شامل ستون هاییه که در ادامه راجع به اون ها صحبت می‌کنیم.

  • command : که همون نام دستور اجرا شده رو نشون می‌ده.
  • FD : که می‌تونه مقدارهای مختلفی بگیره مثل :
    • cwd : دایرکتوری فعلی
    • rtd : دایرکتوری ریشه
    • txt : قسمت کد یا داده برنامه ها
  • TYPE : این ستون هم مقادیر مختلفی مثل مقادیر زیر رو نشون می‌ده:
    • DIR : دایرکتوری
    • REG : فایل

۲- لیست تمام فایل‌های باز یک کاربر خاص

در مثال زیر لیست تمام فایل‌های باز کاربر ali گرفته شده است.

ali:~/ $ lsof -u ali
COMMAND    PID USER   FD      TYPE             DEVICE  SIZE/OFF    NODE NAME
startkde  1015  ali  cwd       DIR                8,5      4096  521217 /home/ali
startkde  1015  ali  rtd       DIR                8,6      4096       2 /
startkde  1015  ali  txt       REG                8,6    982296  393604 /usr/bin/bash
startkde  1015  ali  mem       REG                8,6    162472  397718 /usr/lib64/ld-2.17.so
startkde  1015  ali  mem       REG                8,6   2108632  397719 /usr/lib64/libc-2.17.so
startkde  1015  ali  mem       REG                8,6     22440  424759 /usr/lib64/libdl-2.17.so
startkde  1015  ali  mem       REG                8,6    171464  425288 /usr/lib64/libtinfo.so.5.9
startkde  1015  ali  mem       REG                8,6 106055264  416867 /usr/lib/locale/locale-archive
startkde  1015  ali  mem       REG                8,6     26254  524129 /usr/lib64/gconv/gconv-modules.cache
startkde  1015  ali    0u      CHR                1,3       0t0    1029 /dev/null
startkde  1015  ali    1u     unix 0xffff8801a72aa080       0t0   21646 socket
startkde  1015  ali    2u     unix 0xffff8801a72a9040       0t0   21647 socket
startkde  1015  ali  255r      REG                8,6     13132  426492 /usr/bin/startkde

 

۳- پیداکردن تمام پروسه‌های در حال اجرا روی یک پورت خاص

در مثال زیر لیست پروسه‌های در حال اجرا روی پورت ۲۲ را می‌بینید.

ali:~/ $ lsof -i TCP:22
COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1471    ali    3u  IPv4  12683      0t0  TCP *:ssh (LISTEN)
sshd    1471    ali    4u  IPv6  12685      0t0  TCP *:ssh (LISTEN)

 

۴- لیست فایل‌های باز IPV4 و IPV6

ali:~/ $ lsof -i 4                                                                                                                                            [1:23:27]
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
wineserve 1085  ali   12u  IPv4  18348      0t0  TCP localhost.localdomain:5939 (LISTEN)

برای IPV6 هم به جای 4 از 6 استفاده کنید.

 

۵- پیدا کردن تمام فایل‌های باز TCP در محدوده 1024-1

ali:~/ $ TCP:1-1024
COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind 1203    root   11u  IPv6  11336      0t0  TCP *:sunrpc (LISTEN)
cupsd   1346    root    7u  IPv4  12113      0t0  TCP localhost:ipp (LISTEN)
sshd    1471    root    4u  IPv6  12685      0t0  TCP *:ssh (LISTEN)
master  1551    root   13u  IPv6  12898      0t0  TCP localhost:smtp (LISTEN)
sshd    1834    root    3r  IPv4  15101      0t0  TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ESTABLISHED)
sshd    1838    root    3u  IPv4  15101      0t0  TCP 192.168.0.2:ssh->192.168.0.1:conclave-cpp (ESTABLISHED)
sshd    1871    root    3r  IPv4  15842      0t0  TCP 192.168.0.2:ssh->192.168.0.1:groove (ESTABLISHED)
httpd   1918    root    5u  IPv6  15991      0t0  TCP *:http (LISTEN)
httpd   1918    root    7u  IPv6  15995      0t0  TCP *:https (LISTEN)
موافقین ۰ مخالفین ۰ ۹۲/۰۶/۱۲
علی رضا پژوهش

linux

lsof command

tcp

terminal

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی