كاربرد دستور lsof

computeraccountants

كاربرد دستور lsof

۱ بازديد

    ليست كردن فرآيندها بر اساس فايل‌هاي باز شده: يعني بر اساس يك فايل مشخص ليستي از فرآيندها داشته باشيم. مثال زير فرآيندهايي كه فايل syslog را باز كرده‌اند را نشان مي‌دهد.    lsof /var/log/syslog
    ليست كردن فايل‌هاي باز شده در زير يك دايركتوري: يعني فايل‌هاي باز شده تحت يك دايركتوري معين شده را فهرست كنيم. مثال زير تمامي فايل‌هاي باز شده در زير دايركتوري var/log/ را فهرست مي‌كند.     lsof +D /var/log
    ليست كردن فايل‌هاي باز شده توسط فرآيندهايي كه با يك رشته مشخص شروع مي‌شوند. براي اينكار از سوئيچ  c- استفاده مي‌كنيم. در مثال زير تمام فايل‌هاي باز شده براي فرآيندهايي كه با رشته‌هاي ssh و init آغاز مي‌شوند را فهرست مي‌كند.     lsof -c ssh -c init
    ليست كردن فايل‌هاي باز شده براي يك نقطه اتصال: منظور از نقطه اتصال يعني اينكه يك پارتيشن مانند dev/sda3/ را به يك دايركتوري مانند home/ يا يك دايركتوري مانند tmp/mountpoint/ وصل كنيم. اين حالت مانند حالت فهرست كردن فايل‌هاي باز شده در زير يك دايركتوري است.     lsof /home
    ليست كردن فايل‌هاي باز شده براي يك كاربر خاص: يعني تمامي فايل‌هاي باز شده توسط يك كاربر خاص را فهرست كنيم. اينكار توسط سوئيچ u- انجام مي‌شود و بجاي USERNAME نام كاربري دلخواه را بنويسيد.     lsof -u USERNAME
    ليست كردن فايل‌هاي باز شده براي يك فرآيند خاص: يعني با PID فرآيند، فهرست تمام فايل‌هاي باز شده توسط آن فرآيند را ببينيم. اينكار توسط سوئيچ p- انجام مي‌شود و بجاي PID بايد شناسه فرآيند را جايگزين كنيد.     lsof -p PID
    اما براي بدست آوردن PID يك فرآيند مي‌توانيد از دستور ps بصورت زير استفاده كنيد؛ كافي‌است بجاي fav نام دستور يا سرويس يا فرآيند را كه مي‌خواهيد PID آن را بدست آوريد بنويسيد.     ps aux | grep fav

 4. TCPdump

004HITROST

يك packet sniffer است كه در خط فرمان اجرا مي‌شود و براي بررسي تمام يا قسمتي از پكت‌هاي در حال انتقال بر روي اينترفيس‌هاي شبكه به كار مي‌رود. محدوده اين پكت‌ها توسط تركيبي از عملگرهاي منطقي و پارامترهايي مثل آدرس آي‌پي يا مك مربوط به منبع و مقصد و نوع پروتكل تعيين مي‌شود. packet sniffer يا packet analyzer يك سخت‌افزار يا نرم‌افزار است كه مي‌تواند ترافيك موجود بر روي يك شبكه را آناليز و رمزگشايي كند و نتيجه را نمايش داده يا ذخيره كند.

 گزينه‌هاي اين دستور به ترتيب زير است:

    i : براي مشخص كردن كارت شبكه به كار مي‌رود. tcpdump -i eth0
    c: با استفاده از اين گزينه مي‌توانيم مشخص كنيم كه اطلاعات چند پكت اول نمايش داده شود. در اين حالت اجراي دستور پس از نمايش اطلاعات تعداد پكت‌هاي مشخص شده متوقف مي‌شود. [tcpdump -c [Number Of Packets
    w : مشخص مي‌كند كه نتيجه اجراي دستور به جاي نمايش در كنسول، در يك فايل نوشته شود. اين فايل مي‌تواند ورودي يك برنامه يا اسكريپت براي آناليز باشد، يا بعدا توسط خود دستور tcpdump خوانده شود. [tcpdump -w [File Address
    r : براي خواندن و نمايش دادن نتايج موجود در فايلي كه قبلا توسط دستور tcpdump در آن نوشته شده به كار مي رود. [tcpdump -r [File Address
    host : براي نمايش packetهاي در حال انتقال كه آدرس آي‌پي يا hostname منبع يا مقصد آن‌ها برابر مقدار مشخصي است، به كار مي‌رود.  [tcpdump host [ip address / hostname
    src : به همراه host براي نمايش پكت‌هاي در حال انتقال كه آدرس آي‌پي يا hostname منبع آن‌ها برابر مقدار مشخصي است، به كار مي‌رود.  [tcpdump src host [ip address / hostname
    dst : به همراه host براي نمايش پكت‌هاي در حال انتقال كه آدرس آي‌پي يا hostname مقصد آن‌ها برابر مقدار مشخصي است، به كار مي‌رود. [tcpdump dst host [ip address / hostname
    port : براي نمايش پكت‌هاي در حال انتقال كه پورت منبع يا مقصد آن‌ها برابر مقدار مشخصي است، به كار مي‌رود. [tcpdump port [portNo

 5. Netstat

005HITROST

netstat دستوري براي بدست آوردن اطلاعاتي مانند ارتباطات شبكه، جدول مسيريابي، اطلاعات و آماري از اينترفيس‌هاي شبكه است و جزو ابزارهايي به شمار مي‌رود كه در رفع مشكل شبكه استفاده مي‌شود. همچنين netstat در سيستم‌عامل ويندوز نيز قابل استفاده است. اين دستور پارامترهاي زيادي دارد كه به چند پارامتر در اينجا بسنده مي‌كنيم:

    -a : نمايش تمام ارتباطات فعال و پورت‌هاي UDP وTCP در كامپيوتري كه در حال شنود است
    -e : نمايش آمار اترنت؛ مثل نمايش تعداد پكت‌هاي در حال ارسال و دريافت بر روي شبكه
    -n : نمايش TCPهاي فعال
    -s : نمايش آمار به وسيله پروتكل

6. Htop

006HITROST

 اين دستور يكي از پيشرفته‌ترين ابزارهاي لينوكس براي مديريت و مانيتورينگ شبكه است. در واقع htop بسيار شبيه به دستور top است، با اين تفاوت كه ويژگي‌هاي پيشرفته‌ي بسياري را ارائه مي‌كند. قابليت‌هايي مانند رابط گرافيكي كاربر پسندتر براي مديريت فرآيندها، كليدهاي ميانبر و مرتب كردن فرآيندها بصورت افقي و عمودي است. htop جزو ابزارهاي شخص ثالث است و به صورت پيش فرض در سيستم‌هاي لينوكسي قرار ندارد؛ به همين دليل بايد توسط مديريت پكيج YUM آن را نصب كنيد. در واقع htop ابزار كوچك بسيار مفيد براي نظارت بر وضعيت داخلي سرور مجازي يا سرور اختصاصي در ترمينال SSH است. اين برنامه مي‌تواند به جاي دستور top مورد استفاده قرار بگيرد و نسبت به اين دستور از مزاياي بيشتري به خصوص از لحاظ طرح بندي و سهولت عمل با استفاده از ميانبر و همچنين حمايت از ماوس برخوردار است.
7. Iotop

007HITROST

اين دستور هم بسيار شبيه به htop و top است. با اين تفاوت كه فرآيندهاي سخت افزارهاي ورودي و خروجي را نيز نمايش مي‌دهد. lotop زماني كه بخواهيم بدانيم كدام فرآيند دقيقا مربوط به چه منبعي است، كاربردي و مفيد واقع خواهد شد.
8. Iostat

008HITROST

 اين دستور هم تمامي اطلاعات مربوط به دستگاه‌هاي ورودي و خروجي را نشان مي‌دهد. در واقع iostat جزئيات ريز سيستم ذخيره سازي را نشان مي‌دهد. اين دستور مشكلات ورودي/خروجي را براي نشان داده و از طريق آن مي‌توان سرعت و كند شدن سرور را چك كنيد.
9. IPTraf

009HITROST

اين دستور يك كنسول متن‌باز بر اساس ابزار real time network در لينوكس است كه اطلاعات متنوعي نظير ترافيك آي‌پي كه در شبكه پردازش مي‌شود و اطلاعات tcp وicmp و خرابي‌هاي ترافيك tcp/udp و بسته‌هاي tcp را نشان مي‌دهد.
10. Psacct يا Acct

0010HITROST

psacct و acct دو برنامه متن باز تحت لينوكس هستند كه اين قابليت را مي‌دهند كه به راحتي و با چند تا دستور ساده بتوانيم كاربرهاي ssh را مانيتور بكنيم، البته دستور ps و دستورات ديگري براي اين كار وجود دارد. اين دستورات اطلاعات خوبي از جمله ميزان منابع مصرفي توسط كاربرها يا مدت زمان كار با سيستم يا حتي دستوري كه توسط كاربر در حال اجرا است را با جزئيات كامل در اختيار قرار مي‌دهد. هر كاربر در دايركتوري خانگي خود فايلي به نام bash_history دارد كه بصورت مخفي در دايركتوري خانگي قرار دارد. در اين فايل تمامي دستورهايي كه يك كاربر اجرا كند ذخيره خواهد شد و مي‌توان براي فهميدن اينكه كاربر چه دستوري را اجرا كرده است  از آن بهره برد. در هر خط، يك دستور اجرا شده قرار مي‌گيرد. اما كاربر مي‌تواند اين فايل را پاك يا محتواي آن را پاك كند. در تمامي توزيع‌هاي لينوكسي دستورهايي وجود دارند كه يك مدير مي‌تواند اطلاعات كامل‌تري از فعاليت‌هاي يك كاربر بدست بياورد. با استفاده از اين دستور مي‌توان فهميد كه هر كاربر چه دستوري را انجام داده، چه مقدار منبع استفاده كرده، چه تعداد كاربر در حال فعاليت روي سيستم هستند. براي استفاده از اين دستور بايد در توزيع‌هاي مبتني بر Redhat بسته نرم‌افزاري psacct و در توزيع‌هاي مبتني بر دبيان بسته نرم‌افزاري acct را نصب كنيد.
11. Monit

0011HITROST
 
Monit ابزاري متن باز به منظور مانيتورينگ فرآيندها و سرويس‌ها در سيستم‌عامل لينوكس است. نصب و پيكربندي آن بسيار ساده بوده و تنها لازم است كه به ازاي هر سرويس خطوط تنظيماتي را به فايل cl اصلي پيكربندي آن اضافه كنيم. فايل پيكربندي آن در توزيع‌هاي RHLE 6.x و CentOS 6.x فايل etc/monit.conf/ است. اين دستور سرويس‌هايي نظير Apache, MySQL, Mail, FTP, ProFTP, NginX و SSH را قادر به مانيتور كردن است.
 
12. NetHogs

0012HITROST
نرم‌افزار nethogsnetHogs بر اساس پردازش‌هايي كه در سرور فعال است، ريزِ جزئياتِ پهناي باند مصرفي را نمايش مي‌دهد. شايد بزرگترين مزيت اين نرم‌افزار اين است كه بسيار ساده‌تر از دستورات ديگر عمل مي‌كند و خصوصا براي پيدا كردن نرم‌افزاري كه پهناي باند زيادي از سرور را به خود اختصاص داده است مي‌تواند كمك زيادي را انجام دهد.
در هنگام اجراي برنامه مي‌توانيد از كليدهاي ميانبري براي كنترل برنامه نيز استفاده كنيد كه اين كليدها به شرح زير است:

    m : براي نمايش سرعت بر اساس B, KB, KB/S, MB
    r : مرتب سازي بر اساس دريافت «received»
    s : مرتب سازي بر اساس ارسال «sent»
    q : پايان دادن به برنامه و رفتن به محيط كنسول

13. iftop

0013HITROST
 iftop ابزاري است براي مشاهده ترافيك ارسالي و دريافتي بين گره‌هاي شبكه و بستر اجراي آن سيستم‌عامل لينوكس است. اين برنامه در خط فرمان اجرا مي‌شود و شبيه به برنامه top مي‌باشد، با اين تفاوت كه دستور top مقدار منابع استفاده شده، مثل RAM و CPU را نمايش داده، و دستور iftop شبكه انتخاب شده را monitor و ترافيك مصرفي را نمايش مي‌دهد.
14. Monitorix

0014HITROST
 monitorix يك ابزار قدرتمند و رايگان و به صورت متن باز بوده كه به منظور مانيتور كردن منابع شبكه و سيستم در لينوكس طراحي شده است. اين نرم‌افزار به صورت منظم اطلاعات شبكه و سيستم را جمع آوري كرده و اين اطلاعات را در گراف با استفاده از اينترفيس وب خودش نمايش مي‌دهد. مانيتوريكس عملكرد  تمامي بخش‌هاي سيستم را مانيتور مي‌كند و همچنين به شناسايي مشكلات پردازش, نقايص, مدت زمان پاسخ ناخواسته و ديگر فعاليت‌هاي غير طبيعي مي‌پردازد.
15. Arpwatch

اين دستور تمامي ترافيك و عملكرد پروتكل Arp را مانيتور مي‌كند، اين ابزار به طور خودكار تمامي ترافيك مبادله شده در اترنت را بررسي كرده و لاگ‌ مربوط به آدرس‌هاي مك و آي‌پي را نگه مي‌دارد. اين دستور قابليت اين را دارد كه به مدير سيستم از طريق ايميل ترافيك‌ و آدرس‌هاي ناشناس را هشدار و گزارش دهد. اين ابزار در شناسايي حمله‌ي ARP Spoofing بسيار مفيد است.
16. Suricata

 برخلاف اكثر ابزارهاي مانيتورينگ، اين دستور از مانيتور كردن شبكه جلوگيري مي‌كند. در واقع اگر داراي سيستمي مهم يا سرور هستيد نصب و استفاده‌ي اين ابزار را توصيه مي‌كنيم. بوسيله‌ي اين ابزار مي‌توانيد تمامي ترافيك‌هاي ناخواسته به سرور را شناسايي كرده و از مانيتور كرده سيستم جلوگيري كنيد.
17. VnStat PHP

شايد بسياري از مديرهاي شبكه نياز به ابزاري براي مانيتورينگ كل پهناي باند مصرفي دانلود و آپلود شده بر روي سرور داشته باشند. ممكن است بخواهيد براي مديريت بهتر سرور از يك كنترل پنل مانند دايركت ادمين، سي پنل، پلسك و وب سايت پنل بسته به نوع سيستم عامل سرور استفاده كنيد، اما هيچكدام از اين پنل‌ها ممكن است كل ترافيك مصرف شده بر روي سرور را نمايش ندهند، اين پنل تنها با تقريب ممكن است ترافيك مصرفي يك اكانت را نمايش مي‌دهند. اما ملاك هزينه‌هاي پهناي باند، كل ترافيك انتقال يافته بر روي كارت شبكه است كه ممكن است صرف بروزرساني‌هاي سيستم عامل و يا حتي ويروس‌ها و يا حملات بروت‌فورس شود و مدير سرور مجبور به پرداخت هزينه براي ترافيك ناخواسته خود مي‌شود. در اين حالت مي‌توان از ابزاري قوي مانند VnStat PHP  استفاده كرد.

vnstat PHP برنامه‌اي بر پايه وب براي ابزار محبوب vnstat است. اين برنامه براي مانيتورينگ ترافيك‌هاي ورودي و خروجي در سيستم است و مي‌تواند با گزارش‌هاي ماهانه، روزانه و سالانه به صورت گرافيكي آماري از ترافيك‌هاي سيستم نشان دهد. از مزاياي اين نرم افزار مي‌توان به سبك بودن آن اشاره كرد كه بار خاصي را بر روي سرور اعمال نمي‌كند.
 18. Nagios

Nagios يك سيستم مانيتورينگ متن‌باز براي مانيتور كردن شبكه، زير ساخت‌ها و نرم‌افزار‌ها است. با Nagios امكان مانيتورينگ سيستم، سرويس‌ها و شبكه با ارسال پيغام‌هايي به ايميل مديران در زمان‌هاي بحراني وجود دارد. با آن مي‌توانيد كل زير ساخت‌ها «Inferastructure»  را بررسي كنيد. در پيكربندي Nagios در اين مطلب از دو ماشين لينوكسي كه يكي به عنوان Nagios Server عمل مي‌كند و ديگري به عنوان Nagios Client بايد استفاده شود. Nagios Server ماشيني است كه Nagios و كنسول آن بر روي آن نصب شده و مي‌توان ديگر ماشين‌هاي شبكه را را براي مانيتورينگ متمركر به آن معرفي كرد. در واقع با استفاده از ماشين Nagios Server مي‌توان سرويس‌ها، زير ساخت‌ها مانند ftp, dns و وضعيت پردازنده، حافظه، swap بر روي ماشين‌هاي راه دور را يكجا مانيتور كرد. به ماشين‌هايي كه به Nagios Server معرفي مي‌شوند، Nagios Client مي‌گويند. لازم است بر روي ماشين هاي Nagios Client، بسته نرم افزاري nrpe نصب شود.
19. Nmon

0019HITROST

اين دستور خلاصه شده‌ي Nigel's performance Monitor است كه براي مانيتور كردن تمامي منابع سيستم از جمله پردازنده، حافظه‌ي رم، ميزان مصرف ديسك، فرآيندهاي مهم و كرنل به كار مي‌رود. اين ابزار در دو حالت Online Mode و Capture Mode ارائه شده است. Online Mode براي مانيتور كردن شبكه در زمان واقعي و Capture Mode براي زماني استفاده مي‌شود كه مي‌خواهيم نتايج در فايلي با فرمت CSV ذخيره شود.
20. Collectl

0020HITROST

مي‌توان گفت collectl كامل‌ترين ابزار براي مانيتورينگ شبكه است. اين ابزار داراي قابليتي براي جمع‌آوري اطلاعاتي از منابع سيستم از جمله مصرف پردازنده، حافظه، فرآيندها، سوكت‌ها، nfs و tcp است

تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در مونوبلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.