در این مطلب از سری مطالب آموزش لینوکس و دستورات لینوکس با آموزش دستور Fuser در خدمت شما خواهیم بود تا بیش از پیش بر مدیریت لینوکس خود مسلط گردید.
معرفی دستور Fuser
دستور Fuser یک دستور کاملا هوشمند یونیکسی است که در تمام لینوکسهای پایه قابل نصب و استفاده است.
کاربرد این دستور در لینوکس برای کار با پروسس ها است و توانایی آن را دارد تا فایل ، دایرکتوری ،سرویس و Socket متصل به پروسس را یافته و آن را Kill کند و یا اطلاعات دقیقی از نحوه رفتار آن Process بدست آورد.
این دستور به تنهایی کاربرد خاصی نداشته و با استفاده از پارامترهای آن است که خروجی مورد نظر را به ما بر میگرداند.
نصب Fuser در لینوکس
برای نصب و استفاده از دستور Fuser باید پکیج PSmisc را نصب کنید.
نصب دستور Fuser در لینوکس Centos و Redhat
yum install psmisc -y
نصب دستور Fuser در لینوکس Ubuntu و Debian
apt-get install psmisc
آموزش دستور Fuser
دستور Fuser دارای پارامترهای متنوعی است که عملیات مختلفی را مدیریت و انجام میدهد ، که در این مطلب ما به توضیح برخی از پرکاربردترین پارامترهای آن پرداخته و در پایان به صورت تیتر وار پارامترهای آن را معرفی خواهیم کرد.
حال پس از توضیحاتی که خدمت شما ارائه کردیم به آموزش دستور Fuser در قالب چند مثال میپردازیم.
دریافت تمام پروسسهای در حال اجرا
fuser .
با وارد کردن دستور Fuser به همراه یک نقطه ، تمامی پروسس ها به شما نمایش داده میشود. همانند زیر.
حال اگر در نظر دارید این پروسسها به صورت منظم و با اطلاعات کاملتری از جمله PID ، نوع دسترسی و ... نمایش داده شود از دستور زیر استفاده کنید.
fuser -v .
خروجی دستور بالا به شکل زیر خواهد بود.
USER PID ACCESS COMMAND /root: root 22364 ..c.. bash
همانطور که ملاحظه میکنید تمامی موارد خوانا و مشخص است و تنها بخشی که قابل فهم نیست ، حروفهایی است که در زیر ستون Access نوشته شده است که به معنای اجرای پروسس از چه دایرکتوری می باشد که هر یک به شرح زیر میباشند.
حرف C : به معنی پروسس در دایرکتوری فعلی در حال اجراست
حرف e : یک فایل اجرایی در حال اجرایی شدن است.
حرف f : یک فایل باز شده و در حال خروجی دادن است.
حرف F : یک فایل نوشتاری در حال خروجی دادن است.
حرف r : در داکتوری root در حال اجراست
حرف m : این فایل Mmap’ed و یا در دایرکتوری Share در حال اجرا است.
پیدا کردن پروسسهایی که به یک فایل دسترسی دارند.
با استفاده از پارامتر m- شما میتوانید تمام پروسسهایی که به یک فایل سیستمی دسترسی دارند را بیابید.
fuser -v -m .bashrc
با وارد کردن دستور بالا لیستی از تمام پروسسهایی که به bashrc. دسترسی دارند لیست خواهد شد.
kill کردن پروسس
fuser -k .
تمام پروسسهای در حال اجرا را kill خواهد کرد.
اگر میخواهید نسبت به تک تک پروسسها قبل از kill شدن از شما سؤالی پرسیده شود از دستور زیر استفاده کنید.
fuser -ki .
لیست انواع سیگنالهایی که پارامتر Kill میتواند به یک پروسس ارسال کند.
سیگنالها در اصل همان عملیاتی هستند که توسط پارامتر Kill به سمت یک پروسس ارسال میشوند.
برای دریافت لیست از پارامتر l- استفاده میشود.
fuser -l
برای استفاده از سیگنالها برای دایرکتوری خاص از دستور زیر استفاده میشود.
fuser -k -HUP /boot
در دستور بالا سیگنال HUP برای تمامی پروسسهایی که در دایرکتوری boot قرار دارند ارسال میگردد.
یک مثال پرکاربرد از fuser
به طور مثال شما نیاز دارید سریعاً تمام پروسسهایی که با پورت 22 هستند kill شود ؛ برای این عملیات دستور زیر کاربردی است.
fuser -k 22/tcp
با وارد کردن دستور بالا تمام پروسسهایی که پورت 22 و پروتکل tcp فعال هستند kill خواهد شد.
بدین ترتیب شما میتوانید از دستور Fuser و پارامترهای آن استفاده نمایید.
در ادامه به توضیح مختصر سایر پارامترهای این دستور کاربردی خواهیم پرداخت.
a- : نمایش کلیه فایلها مورد استفاده به همراه فایلهایی که استفاده نمیشود.
s- : عملیات بدون خروجی و پیغامی صورت میگیرد.
u- : نمایش شناسه کاربر یا همان UserID
w- : برای kill کردن فایلهایی که فقط دسترسی نوشتن دارند.
4- : جستجو بین پروسس هایی که با IPv4 در حال اجرا هستند.
6- : جستجو بین پروسسهایی که با IPv6 در حال اجرا هستند.
امیدواریم آموزش دستور fuser برای شما مفید واقع شده باشد.
کاربر گرامی شما میتوانید سؤالات مرتبط با این آموزش را در بخش کامنت ارسال کرده و در همان قسمت پاسخ خود را دریافت کنید.