Table of Contents

Nice to know

Înainte de a începe această secțiune trebuie să vă asigurați că sunteți în directorul potrivit. Rulați comanda cd ~/uso-lab/07-inspect/support/nice-to-know.

Adăugarea unui serviciu nou în sistem

În secțiunea anterioară am învățat cum să afișăm serviciile disponibile în sistem și să aflăm statusul curent al unui serviciu.

Ne propunem să adugăm un serviciu nou în cadrul sistemului. Vom folosi un fișier de configurare deja existent.

student@uso:~/.../07-inspect/support/nice-to-know$ cat example.service
[Unit]
Description=example
 
[Service]
ExecStart=/usr/bin/python3 -m http.server 8000
Type=simple
User=student
Group=student
WorkingDirectory=/home/student
 
[Install]
WantedBy=multi-user.target

Fișierul de configurare de mai sus este organizat în secțiuni: [Unit], [Service], [Install].

Mai multe informații se pot găsi aici.

Copiem fișierul de configurare în directorul /etc/systemd/system/ și adăugăm permisiunea de execuție.

student@uso:~/.../07-inspect/support/nice-to-know$ sudo cp example.service /etc/systemd/system/
student@uso:~/.../07-inspect/support/nice-to-know$ sudo chmod +x /etc/systemd/system/example.service

Activăm și pornim serviciul:

student@uso:~/.../07-inspect/support/nice-to-know$ sudo systemctl enable example
student@uso:~/.../07-inspect/support/nice-to-know$ sudo systemctl start example

Pentru a testa funcționalitatea serviciului, deschidem un browser și navigăm la URL-ul http://localhost:8000. Observăm că am pornit un server web care afișează conținutul directorului /home/student.

Pentru a pune în aplicare orice modificare adusă fișierului de configurare trebuie rulată următoarea comandă.

    student@uso:~$ sudo systemctl daemon-reload

Exerciții

  1. Scrieți un script Bash care construiește o arhivă .zip cu conținutul directorului /home/student/uso-lab/.
  2. Adăugați în sistem utilizatorul backupuso. Asigurați-vă că acest utilizator nu are un director home asociat.
  3. Construiți un serviciu care face backup directorului /home/student/uso-lab/ la fiecare două minute (citiți secțiunea următoare). Serviciul trebuie să aiba asociat utilizatorul creat la punctul precedent.

Planificarea execuției unui program (cron)

Ne dorim să realizăm diferite acțiuni în cadrul sistemului la anumite momente de timp. Pentru a rezolva această problemă putem să folosim daemonul cron.

student@uso:~$ ps -f $(pidof cron)
UID        PID  PPID  C STIME TTY      STAT   TIME CMD
root       563     1  0 07:47 ?        Ss     0:00 /usr/sbin/cron -f

Daemonul cron poate executa, la anumite momente de timp, programe sau script-uri configurate de un utilizator. Pentru configurarea listelor folosite de daemonul cron vom folosi utilitarul crontab.

Sintaxa folosită pentru a configura daemon-ul cron urmărește următoarea sintaxă:

Pentru a configura un program să se execute la un anumit interval de timp folosim comanda:

student@uso:~$ crontab -e

Dacă vrem să adăugăm data curentă la sfârșitul fișierului date_logs.log din directorul /var/log/ la fiecare 5 minute, introducem următoarea linie:

*/5   *   *   *   *   date >> /var/log/date_logs.log

Exerciții

  1. Adăugați un job cron care să înregistreze la fiecare două minute numărul de procese executate de utilizatorul student. Fiecare execuție, va adăuga un număr la sfârșitul fișierului n_processes.log din directorul /var/log/.
  2. Construți un script care identifică toate job-urile cron rulate de toți utilizatorii din sistem. Pentru fiecare job se vor afișa: numele utilizatorului și comanda rulată.