Rămâneți fără spațiu pe disc pe Linux? Verificați-vă jurnalele!

Recomandări Principale

  • Fișierele jurnal ale sistemului Linux pot ocupa un spațiu considerabil pe disc.
  • De obicei, sistemul tău va comprima automat fișierele jurnal mai vechi pentru a conserva spațiul de stocare.
  • Poți folosi comanda `journalctl` sau `tail -f` pentru a vizualiza jurnalele și a depista procesele care generează probleme.

Deși sistemele Linux sunt cunoscute pentru eficiența lor, s-ar putea să te confrunți brusc cu o lipsă de spațiu pe disc. Care este cauza? Un indiciu important, și probabil principalul responsabil, se va găsi în fișierele jurnal ale sistemului Linux.

De ce jurnalele consumă atât de mult spațiu?

Jurnalele joacă un rol esențial în administrarea sistemului tău Linux. Ele oferă o imagine asupra activității computerului și ajută la diagnosticarea problemelor. Demonii de înregistrare Linux sunt similari cu Vizualizatorul de Evenimente din Windows. În mod obișnuit, jurnalele nu ocupă mult spațiu, deoarece majoritatea distribuțiilor gestionează automat utilizarea spațiului pe disc.

În trecut, jurnalele Linux erau fișiere text simple, dar odată cu adoptarea `systemd` de către multe distribuții, acestea sunt acum fișiere binare gestionate de `journald`, un serviciu `systemd`. Alternativ, distribuția ta poate utiliza `rsyslog` sau `syslog-ng`.

Pentru că jurnalele vechi nu mai sunt relevante, iar arhivele mari pot ocupa spațiu, sistemul le va „rula” periodic – adică le va arhiva, comprima și, în cele din urmă, șterge – eliberând astfel spațiu pentru datele mai importante.

Deși jurnalele nu par a ocupa un spațiu mare, un proces defectuos le poate umple mai rapid decât sistemul le poate rula.

Dacă observi o scădere bruscă a spațiului pe disc, fără a fi descărcat recent fișiere mari, problema ar putea fi legată de jurnalele sistemului Linux. Va trebui să identifici ce umple jurnalele și să corectezi situația.

Poți verifica spațiul folosit pe disc cu comanda `du -h`:

du -h /var/log

Vei vedea o listă a fiecărui subdirector, împreună cu spațiul total ocupat:

Localizarea jurnalelor

Dacă utilizezi o distribuție Linux modernă cu `systemd`, vei folosi programul `journalctl` pentru a vizualiza jurnalele. `journald` stochează jurnalele în general în directoarele `/var/log/journal` sau `/run/log/journal`, în funcție de distribuție.

Pentru a vizualiza jurnalele, scrie comanda `journald` în linia de comandă. Există și alte opțiuni utile. De exemplu, pentru a vedea mesajele de pornire, utilizează opțiunea `-b`:

journalctl -b

Poți vizualiza mesajele de jurnal în timp real cu opțiunea `-f`.

Dacă distribuția ta nu folosește `systemd`, jurnalele se vor găsi în directorul `/var/log`. Chiar și cu `systemd`, unele programe continuă să stocheze jurnalele în acest director. Acestea sunt fișiere text simple, care pot fi examinate cu un utilitar precum `less`.

De exemplu, pentru a citi jurnalul de sistem:

less /var/log/syslog

Vei vedea tot conținutul fișierului jurnal, care poate conține mii de rânduri:

Îl poți monitoriza în timp real cu opțiunea `-f` a comenzii `tail`:

tail -f /var/log/syslog

Cum rulează Linux fișierele jurnal?

În directorul `/var/log`, vei observa fișiere cu nume care se termină în „log.N.gz”, unde N este un număr. Acesta este rezultatul rotirii jurnalelor mai vechi de către sistem. Majoritatea distribuțiilor au un utilitar numit `logrotate` care realizează acest lucru automat. `logrotate` este configurat să ruleze ca un job cron sau un timer `systemd`.

De obicei, majoritatea distribuțiilor rulează `logrotate` zilnic. `logrotate` comprimă jurnalele vechi folosind gzip, așa cum indică extensiile „.gz”. Acesta utilizează praguri, cum ar fi vechimea sau dimensiunea fișierului, pentru a face asta, și un alt prag pentru a șterge în cele din urmă fișierele jurnal vechi.

Setările implicite pentru `logrotate` sunt suficiente pentru majoritatea utilizatorilor. Poți schimba comportamentul `logrotate` editând fișierul `/etc/logrotate.conf` ca superutilizator, precum și fișierele cron sau timer `systemd`, dar aceste operațiuni sunt mai relevante pentru administratorii de server.

Este mai indicat să corectezi cauza umplerii jurnalelor, decât să modifici fișierele de configurare pentru a economisi spațiu pe disc. Dacă este necesar, poți consulta pagina de manual logrotate.

Ce jurnale pot fi șterse în siguranță?

Dacă situația este disperată și ai nevoie urgentă de spațiu pe disc, poți șterge manual fișierele jurnal arhivate cu extensia „.gz”, înainte ca `logrotate` să o facă. Poți folosi comanda `rm`, dar va trebui să o execuți ca superutilizator, deoarece fișierele aparțin sistemului:

sudo rm /var/syslog/syslog.*gz

Această comandă va șterge toate fișierele care conțin „syslog” și se termină cu „gz”.

Fii întotdeauna atent când execuți comenzi cu `sudo`, mai ales comenzi distructive precum `rm`!

De obicei, nu ar trebui să ștergi fișiere din directoarele de sistem fără a înțelege implicațiile, dar jurnalele arhivate nu vor crea probleme dacă lipsesc. Totuși, în cazul unei probleme, s-ar putea să ai nevoie de jurnalele vechi.

Cum să corectezi problema umplerii jurnalelor

Cel mai bun mod de a descoperi ce umple jurnalele este să le monitorizezi folosind opțiunile `journalctl` sau `tail -f`. Cel mai bine este să investighezi mesajele de eroare.

Va trebui să rezolvi problema procesului care generează erori pentru a economisi spațiu pe disc. Dacă nu știi care este cauza erorii, poți căuta pe internet sau poți cere ajutor pe canalele de suport ale distribuției tale. După ce ai corectat problema, poți șterge în siguranță jurnalele vechi. Acum ar trebui să ai mult mai mult spațiu pe disc.