כיצד לבדוק קבצים פתוחים בלינוקס

How Check Open Files Linux



אולי נתקלת באמרה, הכל קובץ בלינוקס. למרות שזה לא לגמרי נכון, זה כן מחזיק בזה סט של אמיתות.

במערכות לינוקס ודמויי יוניקס, הכל דומה לקובץ. המשמעות היא שהמשאבים במערכת יוניקס יוקצו למתאר קבצים, כולל התקני אחסון, שקעי רשת, תהליכים וכו '.







מתאר קבצים הוא מספר ייחודי המזהה קובץ והתקני קלט/פלט אחרים. הוא מתאר משאבים וכיצד הגרעין ניגש אליהם. תחשוב על זה כשער למשאבי החומרה הפשטת ליבה.



למרבה הצער, הרעיון של מתארי קבצים חורג מהיקף הדרכה זו; שקול את הקישור המצורף להלן כדי להתחיל ללמוד יותר:



https://en.wikipedia.org/wiki/File_descriptor





המשמעות היא שמערכות Unix ו- Unix כמו Linux משתמשות בקבצים כאלה בכבדות. כמשתמש בכוח לינוקס, לראות את הקבצים הפתוחים ואת התהליך והמשתמשים בהם הוא שימושי להפליא.

הדרכה זו תתמקד בדרכים להציג את הקבצים הפתוחים ואיזה תהליך או משתמש אחראי.



דרישות מוקדמות

לפני שנתחיל, ודא שיש לך:

  • מערכת לינוקס
  • משתמש בעל הרשאות שורש או סודו

אם יש לך אלה, תן לנו להתחיל:

כלי LSOF

נוצר על ידי Victor A Abell, רשימת קבצים פתוחים, או בקיצור lsof, הוא כלי שורת פקודה המאפשר לנו לצפות בקבצים הפתוחים ובתהליכים או משתמשים שפתחו אותם.

כלי השירות lsof זמין בהפצות לינוקס גדולות; עם זאת, ייתכן שתמצא שהוא אינו מותקן ולכן ייתכן שיהיה עליך להתקין אותו באופן ידני.

כיצד להתקין lsof על דביאן/אובונטו

כדי להתקין אותו ב- Debian, השתמש בפקודה:

סודו עדכון apt-get

סודו apt-get להתקיןlsof

כיצד להתקין ב- REHL/CentOS

כדי להתקין ב- REHL ו- CentOS, השתמש בפקודה:

סודועדכון dnf

סודוdnfלהתקיןlsof

כיצד להתקין ב- Arch

ב- Arch, התקשר למנהל החבילות באמצעות הפקודה:

סודופקמן-שֶׁלוֹ

סודופקמן-Slsof

כיצד להתקין ב- Fedora

ב- Fedora, השתמש בפקודה:

סודו יאם להתקיןlsof

לאחר שהתקנת ותעדכן את כלי השירות lsof, נוכל להתחיל להשתמש בו.

שימוש בסיסי

כדי להשתמש בכלי lsof, הזן את הפקודה:

סודוlsof

לאחר שתבצע את הפקודה לעיל, lsof יזרק מידע רב כפי שמוצג להלן:

הפלט לעיל מציג את כל הקבצים שנפתחו על ידי התהליכים. הפלט כולל עמודות שונות, שכל אחת מהן מייצגת מידע ספציפי על הקובץ.

  • העמודה COMMAND - מציג את שם התהליך המשתמש בקובץ.
  • PID - מציג את מזהה התהליך של התהליך באמצעות הקובץ.
  • TID - מציג את מזהה המשימה (שרשורים) של התהליך.
  • TASKCMD - ייצג את שם פקודת המשימה.
  • מִשׁתַמֵשׁ - הבעלים של התהליך.
  • FD - מציג את מספר מתאר הקובץ. כך משתמשים בתהליכים בקובץ; האפשרויות הזמינות בפלט עמודה זו כוללות:
  • cwd - מדריך העבודה הנוכחי.
  • אני אני -קובץ ממופה זיכרון
  • pd - מדריך האב
  • jld - ספריית הכלא
  • ltx - טקסט ספרייה משותף
  • rtd - מדריך שורש.
  • טקסט - קוד ונתוני תוכנה
  • NS - קובץ עקבות ליבה.
  • לִטְעוֹת - שגיאת מידע על מתאר הקבצים
  • mmp -מכשיר ממופה זיכרון.
  • סוּג - מציג את סוג הצומת המשויך לקובץ, כגון:
  • יוניקס - עבור שקע תחום יוניקס.
  • לך - מייצג את הספרייה
  • REG - ייצוג הקובץ הרגיל
  • CHR - מייצג את קובץ התווים המיוחדים.
  • קישור - קובץ קישור סמלי
  • BLK - חסום קובץ מיוחד
  • מרשתת - שקע תחום אינטרנט
  • FIFO - צינור בשם (קובץ First In First Out)
  • צינור - עבור צינורות

ועוד רבים.

  • מכשירים - מציג את מספרי המכשיר המופרדים באמצעות פסיקים לפי סדר קובץ התווים המיוחדים, חסימת קובץ מיוחד, רגיל, ספרייה וקובץ NFS.
  • גודל/כבוי - מציג את גודל הקובץ pr קיזוז בבתים.
  • צוֹמֶת - מציג את מספר הצומת של הקובץ המקומי, סוג סוג פרוטוקול אינטרנט וכו '.
  • שֵׁם - מציג את שם נקודת ההרכבה ו- fs שעליהם הקובץ ממוקם.

הערה: עיין במדריך lsof למידע מפורט על העמודות.

כיצד להציג תהליכים שפתחו קובץ

Lsof מספקת לנו אפשרויות שעוזרות לנו לסנן את הפלט כדי להציג רק את התהליכים שפתחו קובץ ספציפי.

לדוגמה, כדי לראות את הקובץ שפתח את הקובץ /bin /bash, השתמש בפקודה כ:

סודוlsof/אני/לַחֲבוֹט

זה ייתן לך פלט כפי שמוצג להלן:

גודל הפקודה USER FID TYPE/כבוי שם הצומת

ksmtuned1025root txt REG253,0 1150704 428303 /usr/אני/לַחֲבוֹט

לַחֲבוֹט 2968centos txt REG253,0 1150704 428303 /usr/אני/לַחֲבוֹט

לַחֲבוֹט 3075centos txt REG253,0 1150704 428303 /usr/אני/לַחֲבוֹט

כיצד הצג קבצים שנפתחו על ידי משתמש ספציפי

אנו יכולים גם לסנן את הפלט כדי להציג את הקבצים שנפתחו על ידי משתמש ספציפי. אנו עושים זאת באמצעות הדגל -u ואחריו שם המשתמש כ:

סודוlsof-uמאות

זה ייתן לך פלט כפי שמוצג להלן:

כיצד להציג קבצים שנפתחו על ידי תהליך ספציפי

נניח שאנחנו רוצים להציג את כל הקבצים שנפתחו בתהליך ספציפי? לשם כך, אנו יכולים להשתמש ב- PID של התהליך כדי לסנן את הפלט.

לדוגמה, הפקודה שלהלן מציגה את הקבצים שנפתחו על ידי bash.

סודוlsof-p 3075

זה ייתן לך רק את הקבצים שנפתחו על ידי systemd כפי שמוצג:

כיצד להציג קבצים שנפתחו במדריך

כדי לפתוח את הקבצים בספרייה ספציפית, נוכל להעביר את האפשרות +D ולאחריה נתיב הספרייה.

לדוגמה, רשום קבצים פתוחים בספריית /etc.

סודוlsof +D/וכו

להלן הפלט עבור זה:

כיצד להציג חיבור לרשת

מכיוון שהכל ב- Linux הוא קובץ, אנו יכולים לקבל את קבצי הרשת כגון קבצי TCP או חיבורים.

אנו יכולים להשתמש בפקודה:

סודוlsof-אניTCP

זה ייתן לך את חיבורי TCP במערכת.

תוכל גם לסנן לפי היציאה הספציפית באמצעות הפקודה המוצגת להלן:

סודוlsof-אני:22

זה ייתן לך את הפלט כפי שמוצג להלן:

כיצד להציג קבצים ללא הרף

Lsof מספקת לנו מצב לסלול את הפלט מדי כמה שניות. זה מאפשר לך לעקוב אחר הקבצים שנפתחו על ידי תהליך או משתמש באופן רציף.

אולם אפשרות זו מחייבת אותך לסיים את התהליך באופן ידני.

לדוגמה, הפקודה שלהלן מנטרת באופן רציף את הקבצים שנפתחו ביציאה 22:

סודוlsof -r-אני:22

כפי שאתה יכול לראות, בלולאה השלישית, lsof תופס את החיבור שהוקם לשרת ב- SSH.

סיכום

Lsof הוא כלי שימושי להפליא. הוא מאפשר לך לעקוב אחר קבצים קריטיים כמו גם לעקוב אחר משתמשים ולעבד פתיחת קבצים. זה יכול להיות שימושי להפליא בעת פתרון בעיות או בחיפוש אחר ניסיונות זדוניים למערכת.

כפי שמוצג במדריך זה, באמצעות דוגמאות ושיטות שונות, תוכל לשלב את הפונקציונליות המסופקת על ידי כלי lsof לניטור מותאם אישית.

תודה שקראת ושיתפת! אני מקווה שלמדת משהו חדש!