תסריטי פתרון בעיות בלינוקס: אתגרים ופתרונות מהעולם האמיתי

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

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

תרחיש 1: נמחק לך קובץ חשוב בטעות

לך נמחק בטעות קובץ חשוב באמצעות פקודת rm, ועכשיו יש לך צורך לשחזר אותו. להבדיל מ-ווינדוס ו-מקוס, ב-לינוקס אין "סל פח" מובנה עבור קבצים שנמחקו מהטרמינל.

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

למערכות קבצים EXT3/EXT4

השתמש ב-extundelete, שהוא כלי קוד פתוח המיועד לשחזור קבצים שנמחקו ממערכות קבצים ext3 ו-ext4 בלינוקס.

sudo apt install extundelete  # Debian-based  
sudo yum install extundelete  # RHEL-based  

לפני שתנסה לשחזר, נתק את המחיצה כדי למנוע כתיבות נוספות שעלולות לדרוס נתונים שנמחקו:

sudo umount /dev/sdX

לאחר מכן, הריץ את הפקודה הבאה כדי לשחזר את הקובץ שנמחק וודא שאתה מחליף את /dev/sdX במחיצה הממשית שבה נמחק הקובץ.

sudo extundelete /dev/sdX --restore-all

למערכות קבצים XFS, Btrfs, או NTFS

אם המערכת שלך משתמשת בXFS, Btrfs, או NTFS, הכלי testdisk הוא אפשרות טובה יותר.

sudo apt install testdisk  # Debian-based  
sudo yum install testdisk  # RHEL-based  

הרץ את testdisk ועקוב אחרי ההנחיות האינטראקטיביות כדי לשחזר קבצים שנאבדו.

sudo testdisk

טיפים למניעת אובדן קבצים:

    • השתמש ב-trash-cli: במקום rm, השתמש בtrash-cli כדי לשלוח קבצים לפח שניתן לשחזור.
sudo apt install trash-cli  
trash-put myfile.txt  
  • אפשר גיבויים רגילים: הקם את rsync או Timeshift כדי לגבות אוטומטית קבצים חשובים.

תסריט 2: שחזור סיסמת שורש שנשכחה

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

תוכל לאפס את סיסמת השורש על ידי אתחול למצב שחזור או על ידי שינוי אתחול GRUB.

באמצעות מצב שחזור (אובונטו/דביאן)

ראשית, הפעל את המערכת שלך מחדש והחזק את Shift במהלך ההפעלה כדי לגשת לתפריט GRUB, ואז בחר "אפשרויות מתקדמות" → "מצב השחזור" ובחר "התחבר לשורת השורש".

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

mount -o remount,rw /
passwd root

אתה צריך להפעיל מחדש את המערכת.

reboot

שימוש ב־rd.break (RHEL/CentOS/Fedora)

ראשית, הפעל מחדש את המערכת שלך, לחץ על e בתפריט GRUB ומצא את השורה שמתחילה ב־linux והוסף את rd.break בסופה.

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

mount -o remount,rw /sysroot  
chroot /sysroot  
passwd root  

לבסוף, צא והפעיל מחדש את המערכת.

exit  
reboot  

טיפים למניעה:

  • צור משתמש sudo ללא סיסמה כדי למנוע נעילה מהגישה לroot.
  • השתמש במפתחות SSH במקום בסיסמאות לאימות.

תרחיש 3: התקנת חבילה, אך היא לא פועלת

התקנת חבילה, אך זה אומר "פקודה לא נמצאה" כאשר אתה מנסה להריץ אותה, דבר שנובע בדרך כלל מהעובדה שהבינרי אינו ב־PATH של המערכת שלך, ההתקנה של החבילה אינה נכונה, או יש תלות חסרה.

הפתרון הוא, תצטרך תחילה לוודא שהחבילה מותקנת או לא.

dpkg -l | grep package-name  # Debian-based  
rpm -qa | grep package-name  # RHEL-based  

אם היא חסרה, תצטרך להתקין אותה מחדש:

sudo apt install package-name  
sudo yum install package-name  

בשלב הבא, בדוק אם הפקודה קיימת במערכת שלך PATH.

which package-name  
echo $PATH

אם הקובץ הבינארי נמצא במיקום לא סטנדרטי, הוסף אותו ל- PATH:

export PATH=$PATH:/usr/local/bin  

טיפים למניעה:

  • אתה צריך לאתחל את הטרמינל או להריץ hash -r לאחר התקנת חבילות חדשות.
  • השתמש במנהלי חבילות כמו Snap או Flatpak, שמתמודדים עם תלותים בצורה טובה יותר.

תרחיש 4: המערכת שלך מתמלאת בשטח פנוי על הדיסק

המערכת שלך מציגה שגיאה " אין מקום פנוי על ההתקן ", שמונעת עדכוני תוכנה, לוגים ופעולות רגילות.

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

שלב 1: בדוק את שימוש הדיסק

הפתרון הוא, תראה תחילה כמה שטח משמש בכל מחיצה במערכת שלך באמצעות פקודת ה- df.

df -h

שלב 2: מצא ומחק קבצים גדולים

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

du -ah / | sort -rh | head -10

שלב 3: הסרת לוגים בלתי נחוצים

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

עם הזמן, לוגים ישנים עשויים לא להיות עוד נחוצים, ולכן הם מועמדים מושלמים לניקוי.

sudo journalctl --vacuum-time=2d  # Deletes logs older than 2 days  
sudo apt autoclean                # Removes outdated package files  

שלב 4: הסרת גרעינים ישנים (אובונטו/דביאן)

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

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

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

sudo apt autoremove --purge  

טיפים למניעה:

  • הגדרת סיבובי יומן: השתמש ב־logrotate כדי לנהל באופן אוטומטי את גודלי קבצי היומן ותקופות השמירה.
  • מעקב אחר שימוש בדיסק: התקן כלים כמו ncdu כדי לעקוב אחרי שימוש בדיסק ולזהות יוצרי מקום.
  • ניקויים קבועים: קבע לוודאי ניקויים מחזוריים כדי להסיר קבצים זמניים, מטמונים וחבילות שאינן בשימוש.

תרחיש 5: השרת שלך בתגובה לא מוצלחת

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

מצב זה עשוי להיות תוצאה של בעיות שונות, כולל:

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

כדי לשחזר שליטה, עקוב אחרי שלבי האיתור בעיות אלו.

שלב 1: גישה לשרת מקומית או דרך TTY

אם SSH אינו עובד, נסו לגשת לשרת ישירות או דרך סשן TTY:

  • על מכונה פיזית, השתמשו בקונסולה המקומית.
  • על מכונה וירטואלית, השתמשו בקונסולת ההיפרווייזור.
  • עבור מערכות Linux, החליפו לסשן TTY נוסף באמצעות Ctrl + Alt + F2 (או F3, F4, וכו').

שלב 2: בדיקת עומס המערכת

לאחר התחברות, בדקו את עומס המערכת ושימוש במשאבים, שיציג את ממוצעי העומס של המערכת על 1, 5 ו-15 דקות. ערך עומס גבוה יותר ממספר ליבות המעבד מציין דרישה גבוהה.

uptime  

בשלב הבא, השתמשו בtop או htop כדי למעקב אחר תהליכים בזמן אמת:

top  
Or
htop

חפשו תהליכים שצורפים יתר על המידה בצריכת CPU או זיכרון.

שלב 3: זיהוי והשבתת תהליכים פורצי דרך

כדי לזהות את התהליכים המבזבזים את המשאבים הכי רבים, הריצו:

ps aux --sort=-%cpu | head  

זה מציג את תהליכי הצריכה הגבוהה ביותר של CPU, שם תוכלו למצוא תהליך בעיה, ולהשבית אותו באמצעות:

kill -9 PID  

החליפו את PID במספר זיהוי התהליך של היישום הבעיה.

שלב 4: בדיקת יומני המערכת

אם המערכת עדיין תגיב, בדקו את הלוגים לשגיאות:

sudo tail -f /var/log/syslog  
Or
sudo dmesg | tail  

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

שלב 5: הפעלה מחדש בבטחה באמצעות SysRq

אם המערכת קפואה לחלוטין, השתמש בשילוב המקשים SysRq כדי לבצע הפעלה מחדש בבטחה:

echo b > /proc/sysrq-trigger  

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

סיכום

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

יש לך טיפים משלו לפתרון בעיות? שתף אותם בתגובות! בואו נבנה יחד קהילת לינוקס מועילה.

Source:
https://www.tecmint.com/linux-troubleshooting-tips/