المقدمة
أمر fuser
هو أداة في نظام Linux مصممة للعثور على العملية التي تستخدم ملفًا معينًا أو دليلًا أو مأخذًا. كما توفر معلومات حول المستخدم الذي يمتلك العملية الجارية ونوع الوصول إليها.
كيفية استخدام أداة fuser
يمكنك مراجعة صفحة الدليل الخاصة بأمر fuser
للحصول على نظرة عامة على جميع الخيارات المتاحة للاستخدام مع fuser
. يمكنك أيضًا تشغيل fuser
بمفرده بدون أي خيارات للحصول على نظرة عامة على بنية fuser
:
- fuser
OutputNo process specification given
Usage: fuser [-fMuv] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME...
fuser -l
fuser -V
Show which processes use the named files, sockets, or filesystems.
-a,--all display unused files too
-i,--interactive ask before killing (ignored without -k)
-k,--kill kill processes accessing the named file
-l,--list-signals list available signal names
-m,--mount show all processes using the named filesystems or block device
-M,--ismountpoint fulfill request only if NAME is a mount point
-n,--namespace SPACE search in this name space (file, udp, or tcp)
-s,--silent silent operation
-SIGNAL send this signal instead of SIGKILL
-u,--user display user IDs
-v,--verbose verbose output
-w,--writeonly kill only processes with write access
-V,--version display version information
-4,--ipv4 search IPv4 sockets only
-6,--ipv6 search IPv6 sockets only
- reset options
udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]
كيفية عرض العمليات الجارية في دليل معين
يمكن استخدام fuser
أيضًا مع الخيار -v، الذي يشغل الأداة في وضع التفصيل. يتم استخدام الخيار التفصيلي لإنتاج مزيد من الإخراج بحيث يمكن للمستخدم ملاحظة ما يقوم به fuser
. قم بتشغيل fuser
على الدليل الحالي، .
، مع تضمين الخيار -v
:
- fuser -v .
Output USER PID ACCESS COMMAND
/home/sammy: sammy 17604 ..c.. bash
في هذه الحالة، العملية الوحيدة التي تعمل في هذا الدليل هي واجهة سطر الأوامر التفاعلية bash
التي تقوم بتشغيل الأوامر منها الآن.
عند تشغيل الأداة fuser
في وضع التفصيل، تقدم معلومات حول USER
، PID
، ACCESS
، و COMMAND
لعملية معينة. يظهر الحرف c
تحت ACCESS
نوع الوصول، وفي هذه الحالة يعني ذلك الدليل الحالي.هناك أنواع أخرى من الوصول، مثل تشغيل ملف executable، الدليل الجذر root، فتح ملف file، وملف معين أو مكتبة مشتركة mapped file.
كيفية البحث عن العمليات باستخدام مأخذ الشبكة
قد تحتاج أيضًا إلى البحث عن العمليات باستخدام مأخذي TCP و UDP. لتوضيح هذا المثال، ستستخدم أولاً nc
لإنشاء مستمع TCP على المنفذ 8002، بحيث يكون هناك عملية قيد التشغيل يمكنك مراقبتها:
- nc -l -p 8002
سيتم حجب الطرفية طالما كانت هذه العملية قيد التشغيل. في نافذة الطرفية الأخرى، استخدم fuser
للعثور على العملية التي تعمل على منفذ TCP 8002 باستخدام الخيار -n
:
- fuser -v -n tcp 8002
Output USER PID ACCESS COMMAND
8002/tcp: sammy 17985 F.... nc
ملاحظة: بشكل افتراضي، ستقوم أداة fuser
بفحص مأخذي IPv4 و IPv6، ولكن يمكنك تغيير ذلك باستخدام الخيارات -4
و -6
لفحص الاتصالات IPv4 فقط أو IPv6 فقط، على التوالي.
تُظهر هذه النتيجة أن مُعرّف عملية (PID
) لعملية استخدام الـ netcat هو 17985
والأمر الذي تم استخدامه لتشغيله هو “nc”. يمكن استخدام مُعرّف العملية (PID) بعدة طرق، بما في ذلك لإيقاف أو قتل عملية تعمل. يمكنك معرفة المزيد حول إدارة العمليات من خلال قراءة كيفية استخدام ps و kill و nice لإدارة العمليات في نظام Linux. يمكنك أيضًا استخدام fuser
نفسه لقتل العمليات التي تعمل على منافذ معينة باستخدام علامة الـ -k
:
- fuser -k 8002/tcp
Output8002/tcp: 18056
إذا عدت إلى نافذة الطرفية الأولى الخاصة بك، ستلاحظ أن برنامج nc
قد تم إيقاف تشغيله وعاد إلى الشل.
يمكن استخدام أداة fuser أيضًا لإرسال إشارات محددة إلى عملية. عند استخدامها مع الخيار -k، ترسل أمر fuser إشارة القتل (KILL) إلى عملية. هناك العديد من الإشارات الأخرى التي يمكن إرسالها إلى عملية تعمل محددة. يمكنك الحصول على قائمة بها باستخدام fuser -l
:
- fuser -l
OutputHUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT
CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
الختام
في هذا المقال، تعلمت بعض استخدامات fuser
كمراقب للمنافذ والمجلدات المستخدمة على نظام Linux. يمكن أن تكون fuser
مفيدة بشكل خاص عند محاولتك فهم العمليات غير المعروفة التي قد تكون تعمل على نظامك.
بعد ذلك، قد ترغب في تعلم كيفية استخدام netstat
و du
لـ مراقبة موارد الخادم الأخرى.
Source:
https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command