הקדמה
כל מערכת מחשב תהנה מניהול ומעקב נכונים. לשמור על מעקב על אופן הפעולה של המערכת שלך יסייע לך לגלות בעיות ולפתור אותן במהירות.
ישנם הרבה יישומים פקודתיים שנוצרו למטרה זו. מדריך זה יציג לך כמה מהיישומים הכי מועילים לכלי העבודה שלך.
דרישות מוקדמות
כדי להשתתף במדריך זה, יש לך צורך בגישה למחשב המריץ מערכת הפעלה בסיסית של Linux. זה יכול להיות או שרת פרטי וירטואלי שהתחברת אליו באמצעות SSH או המחשב המקומי שלך. שים לב שמדריך זה אומת בשימוש בשרת Linux הרץ ב-Ubuntu 20.04, אך הדוגמאות שניתנו אמורות לעבוד על מחשב שרץ בגרסה כלשהי של כל הפצות Linux.
אם אתה מתכנן להשתמש בשרת רחוק כדי לעקוב אחר המדריך הזה, אנו ממליצים לך להשלים תחילה את מדריך הגדרת השרת ההתחלתית שלנו. על ידי כך תוכל להתקין את סביבת השרת המאובטחת שלך – כולל משתמש לא-root עם הרשאות sudo
וגיבוי מוגדר עם UFW – שתוכל להשתמש בה כדי לבנות את מיומנויות ה-Linux שלך.
שלב 1 – כיצד לצפות בתהליכים הרצים ב-Linux
ניתן לראות את כל התהליכים הרצים על השרת שלך באמצעות הפקודה top
:
Outputtop - 15:14:40 up 46 min, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 56 total, 1 running, 55 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1019600k total, 316576k used, 703024k free, 7652k buffers
Swap: 0k total, 0k used, 0k free, 258976k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 24188 2120 1300 S 0.0 0.2 0:00.56 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
7 root RT 0 0 0 0 S 0.0 0.0 0:00.03 watchdog/0
8 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset
9 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
השורות הראשונות מספקות סטטיסטיקות מערכת, כגון עומס CPU/זיכרון וסך הכל מספר המשימות הרצות.
ניתן לראות שיש תהליך אחד הרץ, ו-55 תהליכים שנחשבים להיות משנות מכיוון שהם לא משתמשים באופן פעיל במחזורי CPU.
יתרת הפלט המוצג מראה את התהליכים הרצים ואת סטטיסטיקות השימוש שלהם. בברירת המחדל, top
ממיין אוטומטית את אלו לפי שימוש ב-CPU, כך שתוכל לראות את התהליכים הכי עמוסים תחילה. top
תמשיך לרוץ בפקודת הגב שלך עד שתעצור אותו באמצעות השילוב המקובל של מקשים Ctrl+C
כדי לצאת מתהליך הרצה. זה שולח אות אותו kill
, שמפנה לתהליך להפסיק בשקט אם הוא יכול.
גרסה משופרת של top
, בשם htop
, זמינה ברוב המאגרים של החבילות. ב-Ubuntu 20.04, ניתן להתקין אותו באמצעות apt
:
לאחר מכן, הפקודה htop
תהיה זמינה:
Output Mem[||||||||||| 49/995MB] Load average: 0.00 0.03 0.05
CPU[ 0.0%] Tasks: 21, 3 thr; 1 running
Swp[ 0/0MB] Uptime: 00:58:11
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
1259 root 20 0 25660 1880 1368 R 0.0 0.2 0:00.06 htop
1 root 20 0 24188 2120 1300 S 0.0 0.2 0:00.56 /sbin/init
311 root 20 0 17224 636 440 S 0.0 0.1 0:00.07 upstart-udev-brid
314 root 20 0 21592 1280 760 S 0.0 0.1 0:00.06 /sbin/udevd --dae
389 messagebu 20 0 23808 688 444 S 0.0 0.1 0:00.01 dbus-daemon --sys
407 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.02 rsyslogd -c5
408 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.00 rsyslogd -c5
409 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.00 rsyslogd -c5
406 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.04 rsyslogd -c5
553 root 20 0 15180 400 204 S 0.0 0.0 0:00.01 upstart-socket-br
htop
מספק תצוגה טובה יותר של תהליכי רקע במעבד, מודעות טובה יותר לתמיכת בצבעים בטרמינלים מודרניים, ואפשרויות מיון נוספות, בנוסף לתכונות נוספות. בניגוד ל־top
, זה לא מותקן תמיד כברירת מחדל, אך ניתן לשקול להשתמש בו כתחליף ישיר. ניתן לצאת מ־htop
על ידי לחיצה על Ctrl+C
כמו ב־top
.
הנה כמה קיצורי מקלדת שיעזרו לך להשתמש ב־htop באופן יעיל יותר:
- M: Sort processes by memory usage
- P: Sort processes by processor usage
- ?: גישה לעזרה
- k: Kill current/tagged process
- F2: הגדרת htop. ניתן לבחור כאן אפשרויות תצוגה.
- /:: חיפוש תהליכים
ישנן עוד אפשרויות רבות שניתן לגשת אליהן דרך העזרה או הגדרה. אלו צריכים להיות העצות הראשונות שלך בחקירת הפונקציות של htop. בשלב הבא, תלמד כיצד לעקוב אחר רוחב הפס של הרשת שלך.
שלב 2 – כיצד לעקוב אחר רוחב הפס של הרשת שלך
אם חיבור הרשת שלך נראה מעורר חשש עלול להיות מושם עד כדי שימוש יתר, ואין לך בטוחות לאיזו יישום להאשים, תוכנת nethogs
היא בחירה טובה לזיהוי זה.
ב־Ubuntu, ניתן להתקין את nethogs באמצעות הפקודה הבאה:
לאחר מכן, הפקודה nethogs
תהיה זמינה:
OutputNetHogs version 0.8.0
PID USER PROGRAM DEV SENT RECEIVED
3379 root /usr/sbin/sshd eth0 0.485 0.182 KB/sec
820 root sshd: root@pts/0 eth0 0.427 0.052 KB/sec
? root unknown TCP 0.000 0.000 KB/sec
TOTAL 0.912 0.233 KB/sec
nethogs
משייך כל יישום לתעבורת הרשת שלו.
יש רק מספר מצוות שניתן להשתמש בהם כדי לשלוט nethogs
:
- M: Change displays between “kb/s”, “kb”, “b”, and “mb”.
- R: Sort by traffic received.
- S: Sort by traffic sent.
- Q: quit
iptraf-ng
הוא דרך נוספת למעקב אחר תעבורת רשת. הוא מספק מספר ממשקים אינטראקטיביים שונים.
הערה: IPTraf דורש גודל מסך של לפחות 80 עמודות על 24 שורות.
באובונטו, ניתן להתקין iptraf-ng
בעזרת הפקודה הבאה:
iptraf-ng
צריך להתפעל עם הרשאות root, לכן עליך להוסיף את sudo
לפניו:
תתבקש לבחור בתפריט שמשתמש במסגרת ממשק שורת פקודה פופולרית הנקראת ncurses
.
עם תפריט זה, ניתן לבחור אילו ממשקים ברצונך לגשת אליהם.
לדוגמה, כדי לקבל סקירה על כל תעבורת הרשת, ניתן לבחור בתפריט הראשון ולאחר מכן "כל הממשקים". זה יציג לך מסך שיראה כמו זה:
כאן, ניתן לראות אילו כתובות IP אתה תקשור בהן בכל ממשקי הרשת שלך.
אם ברצונך לקבל את הכתובות האלה מפושרות לדומיינים, ניתן להפעיל חיפוש DNS הפוך על ידי יציאה ממסך התעבורה, בחירת הגדר
ואז הפעלת חיפושי DNS הפוכים
.
ניתן גם להפעיל שמות שירותי TCP/UDP
כדי לראות את שמות השירותים שמופעלים במקום מספרי הפתחות.
עם שני האפשרויות הללו מופעלות, התצוגה עשויה להיראות כמו זו:
הפקודה netstat
היא כלי נוסף ונושך לקביעת מידע רשת.
netstat
מותקן כברירת מחדל ברוב המערכות המודרניות, אך תוכל להתקין אותו בעצמך על ידי הורדתו ממאגרי החבילות המותקנים ברירת המחדל של השרת שלך. ברוב מערכות ה-Linux, כולל Ubuntu, החבילה המכילה את netstat
היא net-tools
:
ברירת המחדל, פקודת netstat
לבדה מדפיסה רשימה של יציאות פתוחות:
OutputActive Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.241.187.204:ssh ip223.hichina.com:50324 ESTABLISHED
tcp 0 0 192.241.187.204:ssh rrcs-72-43-115-18:50615 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 5 [ ] DGRAM 6559 /dev/log
unix 3 [ ] STREAM CONNECTED 9386
unix 3 [ ] STREAM CONNECTED 9385
. . .
אם תוסיף אפשרות -a
, היא תציג את כל היציאות, גם פתוחות וגם לא פתוחות:
OutputActive Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 192.241.187.204:ssh rrcs-72-43-115-18:50615 ESTABLISHED
tcp6 0 0 [::]:ssh [::]:* LISTEN
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 6195 @/com/ubuntu/upstart
unix 2 [ ACC ] STREAM LISTENING 7762 /var/run/acpid.socket
unix 2 [ ACC ] STREAM LISTENING 6503 /var/run/dbus/system_bus_socket
. . .
אם תרצה לסנן כדי לראות רק חיבורי TCP או UDP, תשתמש בדגלים -t
או -u
בהתאם:
OutputActive Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 192.241.187.204:ssh rrcs-72-43-115-18:50615 ESTABLISHED
tcp6 0 0 [::]:ssh [::]:* LISTEN
ראה סטטיסטיקות על ידי מעביר את הדגל "-s":
OutputIp:
13500 total packets received
0 forwarded
0 incoming packets discarded
13500 incoming packets delivered
3078 requests sent out
16 dropped because of missing route
Icmp:
41 ICMP messages received
0 input ICMP message failed.
ICMP input histogram:
echo requests: 1
echo replies: 40
. . .
אם תרצה לעדכן את הפלט באופן רציף, תוכל להשתמש בדגל -c
. קיימות עוד אפשרויות רבות ל- netstat שתוכל ללמוד עליהן בעת עיון בדף ה-manual שלו.
בשלב הבא, תלמד כמה דרכים שימושיות למעקב אחר השימוש בדיסקים שלך.
שלב 3 – כיצד לעקוב אחר השימוש בדיסק
עבור סקירה מהירה של כמה שטח פנוי נשאר על הדיסקים שלך, תוכל להשתמש בתוכנית df
.
ללא אפשרויות, הפלט שלו נראה כך:
OutputFilesystem 1K-blocks Used Available Use% Mounted on
/dev/vda 31383196 1228936 28581396 5% /
udev 505152 4 505148 1% /dev
tmpfs 203920 204 203716 1% /run
none 5120 0 5120 0% /run/lock
none 509800 0 509800 0% /run/shm
הפלט מציג את השימוש בדיסק בבתים, שעשוי להיות קצת קשה לקריאה.
כדי לפתור את הבעיה הזו, תוכל לציין פלט בפורמט שקריא לאדם:
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda 30G 1.2G 28G 5% /
udev 494M 4.0K 494M 1% /dev
tmpfs 200M 204K 199M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 498M 0 498M 0% /run/shm
אם ברצונך לראות את השטח הכולל הזמין בכל מערכות הקבצים, תוכל להעביר את האפשרות --total
. זה יוסיף שורה בתחתית עם מידע סיכום:
OutputFilesystem Size Used Avail Use% Mounted on
/dev/vda 30G 1.2G 28G 5% /
udev 494M 4.0K 494M 1% /dev
tmpfs 200M 204K 199M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 498M 0 498M 0% /run/shm
total 32G 1.2G 29G 4%
df
יכול לספק סקירה שימושית. פקודה נוספת, du
נותנת פירוט לפי ספרייה.
du
ינתח את השימוש עבור הספרייה הנוכחית וכל התתי ספריות. הפלט ברירת המחדל של du
בהרצתו בתיקיית בית ריקה כמעט נראה כך:
Output4 ./.cache
8 ./.ssh
28 .
שוב, אפשר לציין פלט בפורמט קריא על ידי מעבר לו את -h
:
Output4.0K ./.cache
8.0K ./.ssh
28K .
כדי לראות גם גדלי קבצים ולא רק ספריות, תקליד את הפקודה הבאה:
Output0 ./.cache/motd.legal-displayed
4 ./.cache
4 ./.ssh/authorized_keys
8 ./.ssh
4 ./.profile
4 ./.bashrc
4 ./.bash_history
28 .
לסכום בתחתית, ניתן להוסיף את האפשרות -c
:
Output4 ./.cache
8 ./.ssh
28 .
28 total
אם אתה רוצה רק את הסך הכולל ולא את הפרטים, אפשר להפעיל:
Output28 .
קיים גם ממשק ncurses
עבור du
, שנקרא ncdu
, שתוכל להתקין:
זה ייצוג גרפי של השימוש בדיסק שלך:
Output--- /root ----------------------------------------------------------------------
8.0KiB [##########] /.ssh
4.0KiB [##### ] /.cache
4.0KiB [##### ] .bashrc
4.0KiB [##### ] .profile
4.0KiB [##### ] .bash_history
אפשר לקדם בין המערכת הקבצים באמצעות החצים למעלה ולמטה וללחוץ Enter על כל רשומת ספרייה.
בסעיף האחרון, תלמד כיצד לעקוב אחר השימוש בזיכרון שלך.
שלב 4 – כיצד לעקוב אחר השימוש בזיכרון שלך
אתה יכול לבדוק את שימוש הזיכרון הנוכחי במערכת שלך באמצעות הפקודה free
.
כאשר משמשים ללא אפשרויות, הפלט נראה כמו זה:
Output total used free shared buff/cache available
Mem: 1004896 390988 123484 3124 490424 313744
Swap: 0 0 0
כדי להציג בפורמט שקריא יותר, ניתן להעביר את האפשרות -m
כדי להציג את הפלט במגה-בתים:
Output total used free shared buff/cache available
Mem: 981 382 120 3 478 306
Swap: 0 0 0
השורה Mem
כוללת את הזיכרון שנמצא בשימוש למטרות חידוש ומטמון, והוא משוחרר מיידית כאשר נדרש למטרות אחרות. Swap
הוא זיכרון שנכתב לקובץ ה-swap על הדיסק כדי לשמור על זיכרון פעיל.
לבסוף, פקודת vmstat
יכולה להפיק מידע שונה אודות המערכת שלך, כולל זיכרון, סוואפ, io של דיסק ומידע אודות ה-CPU.
ניתן להשתמש בפקודה כדי לקבל מבט נוסף על שימוש בזיכרון:
Outputprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 99340 123712 248296 0 0 0 1 9 3 0 0 100 0
ניתן לראות זאת במגה-בתים על ידי ציון יחידות עם הדגל -S
:
Outputprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 96 120 242 0 0 0 1 9 3 0 0 100 0
כדי לקבל סטטיסטיקות כלליות על שימוש בזיכרון, הקלד:
Output 495 M total memory
398 M used memory
252 M active memory
119 M inactive memory
96 M free memory
120 M buffer memory
242 M swap cache
0 M total swap
0 M used swap
0 M free swap
. . .
כדי לקבל מידע אודות שימוש במטמון של תהליכי מערכת אישיים, הקלד:
OutputCache Num Total Size Pages
ext4_groupinfo_4k 195 195 104 39
UDPLITEv6 0 0 768 10
UDPv6 10 10 768 10
tw_sock_TCPv6 0 0 256 16
TCPv6 11 11 1408 11
kcopyd_job 0 0 2344 13
dm_uevent 0 0 2464 13
bsg_cmd 0 0 288 14
. . .
זה יקנה לך פרטים אודות אילו סוגי מידע מאוחסנים במטמון.
מסקנה
באמצעות הכלים הללו, תוכל להתחיל לצפות בשרת שלך מקו הפקודות. ישנם הרבה כלי ניטור אחרים המשמשים למטרות שונות, אך אלו הם נקודת ההתחלה הטובה.
השלב הבא הוא ללמוד אודות ניהול תהליכים ב-Linux באמצעות ps, kill ו-nice.