לדלג לתוכן

2.1 שירותים ולוגים פתרון

תרגילים

תרגיל 1: רשימת שירותים פעילים

פתרון:

הצגת כל השירותים הפעילים:

systemctl list-units --type=service --state=active

פלט לדוגמה (קטוע):

  UNIT                        LOAD   ACTIVE SUB     DESCRIPTION
  cron.service                loaded active running Regular background program processing daemon
  dbus.service                loaded active running D-Bus System Message Bus
  networkd-dispatcher.service loaded active running Dispatcher daemon for systemd-networkd
  ssh.service                 loaded active running OpenBSD Secure Shell server
  systemd-journald.service    loaded active running Journal Service
  systemd-udevd.service       loaded active running Rule-based Manager for Device Events and Files
  ufw.service                 loaded active running Uncomplicated firewall

ספירת כמות השירותים הפעילים:

systemctl list-units --type=service --state=active | grep -c "active running"

שלושה שירותים מעניינים:
- ssh.service - שרת SSH שמאפשר התחברות מרחוק מאובטחת למחשב.
- cron.service - שירות שמריץ משימות מתוזמנות באופן אוטומטי בזמנים מוגדרים.
- ufw.service - חומת אש שמגנה על המחשב מחיבורי רשת לא רצויים.

תרגיל 2: בדיקת שירות cron

פתרון:

בדיקת מצב השירות:

systemctl status cron

פלט לדוגמה כשהשירות רץ:

cron.service - Regular background program processing daemon
     Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2025-01-27 10:00:00 UTC; 2h 15min ago

אם השירות לא רץ - הפעלה שלו:

sudo systemctl start cron

הגדרה שהשירות יפעל אוטומטית בכל אתחול:

sudo systemctl enable cron

פלט לדוגמה:

Synchronizing state of cron.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable cron

ווידוא שהשירות פעיל ומוגדר לאתחול:

systemctl status cron

בשורת Loaded צריך לראות enabled - פירושו שהשירות יפעל בכל אתחול.

תרגיל 3: צפייה בלוגים עם journalctl

פתרון:

הצגת 20 הרשומות האחרונות:

journalctl -n 20

פלט לדוגמה:

Jan 27 12:00:01 ubuntu cron[1234]: (CRON) INFO (pidfile fd = 3)
Jan 27 12:00:01 ubuntu CRON[1235]: pam_unix(cron:session): session opened for user root by (uid=0)
Jan 27 12:00:01 ubuntu CRON[1235]: pam_unix(cron:session): session closed for user root

הצגת לוגים של שירות cron בלבד:

journalctl -u cron

מעקב אחרי לוגים בזמן אמת (עוצרים עם Ctrl+C):

journalctl -f

שילוב - מעקב בזמן אמת רק על שירות cron:

journalctl -f -u cron

תרגיל 4: קריאת קובץ לוג auth

פתרון:

פתיחת הקובץ עם less (נוח לקבצים גדולים):

sudo less /var/log/auth.log

חיפוש אירועי התחברות ישירות:

sudo grep "session opened" /var/log/auth.log

פלט לדוגמה:

Jan 27 10:15:32 ubuntu systemd-logind[856]: New session 5 of user ubuntu.
Jan 27 10:15:32 ubuntu sshd[2341]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)
Jan 27 12:30:01 ubuntu CRON[3456]: pam_unix(cron:session): session opened for user root by (uid=0)

הצגת רק השורה האחרונה עם session opened:

sudo grep "session opened" /var/log/auth.log | tail -1

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