Понестаје вам простора на диску на Линук-у? Проверите своје дневнике!

Ključni Zaključci

  • Log datoteke Linux sistema mogu zauzeti značajan prostor na disku.
  • Vaš sistem obično kompresuje starije log datoteke kako bi uštedeo prostor na disku.
  • Možete koristiti naredbu journalctl ili tail -f da pregledate logove i identifikujete problematične procese.

Iako Linux sistemi važe za efikasne, može se desiti da neočekivano ostanete bez prostora na disku. Zašto se to događa? Najveći trag, a možda i glavni uzrok, nalazi se u sistemskim log datotekama.

Zašto logovi zauzimaju toliko prostora na disku?

Logovi su ključni za praćenje i upravljanje vašim Linux sistemom. Omogućavaju vam da vidite šta se dešava na vašoj mašini i da rešavate potencijalne probleme. Linux demona za beleženje je sličan Event Viewer-u u Windowsu. Uobičajeno, logovi ne zauzimaju mnogo prostora, jer većina distribucija automatski kontroliše koliko prostora na disku koriste.

U prošlosti, Linux logovi su bili obične tekstualne datoteke, ali sa prelaskom mnogih velikih distribucija na systemd, oni su sada binarne datoteke kojima upravlja journald, sistemski servis. Alternativno, vaša distribucija može koristiti rsyslog ili syslog-ng.

S obzirom na to da stariji logovi nisu relevantni i velike arhive mogu zauzeti prostor, vaš sistem će ih rutinski „rotirati“ – arhivirati, komprimovati i eventualno obrisati – kako bi oslobodio prostor na disku za važnije podatke.

Iako možda ne mislite da logovi mogu zauzeti mnogo prostora, proces koji ne radi ispravno može vrlo brzo da popuni logove, brže nego što sistem može da ih rotira.

Ako proverom prostora na disku primetite da iznenada nestaje, a sigurni ste da niste preuzimali velike datoteke, uzrok može biti problem sa vašim sistemskim logovima. Morate otkriti šta popunjava logove i rešiti taj problem.

Možete proveriti zauzeće diska pomoću naredbe du -h:

 du -h /var/log 

Prikazaće se lista svakog poddirektorijuma, zajedno sa ukupnom količinom prostora koji zauzima:

Pronađite svoje logove

Ako koristite modernu Linux distribuciju sa systemd-om, koristićete program journalctl za pregled logova. journald obično čuva logove u direktorijumima /var/log/journal ili /run/log/journal, zavisno od distribucije.

Da biste videli logove, unesite naredbu journalctl u terminal. Postoje i druge korisne opcije komandne linije. Za pregled poruka prilikom podizanja sistema, koristite opciju -b:

 journalctl -b 

Možete pratiti poruke loga vašeg sistema u realnom vremenu pomoću opcije -f.

Ako vaša distribucija ne koristi systemd, logovi se nalaze u direktorijumu /var/log. Čak i sa systemd-om, neki programi i dalje čuvaju svoje logove u ovom direktorijumu. To su obične tekstualne datoteke koje možete pregledati pomoću programa kao što je less.

Na primer, da biste pročitali sistemski log:

 less /var/log/syslog

Prikazaće se ceo sadržaj log datoteke, koja može sadržati hiljade redova:

Možete ga pratiti i u realnom vremenu pomoću opcije -f naredbe tail:

 tail -f /var/log/syslog

Kako Linux rotira log datoteke

U direktorijumu /var/log možete primetiti datoteke čija se imena završavaju sa „log.N.gz“, gde je N broj. To je rezultat rotacije starijih logova. Većina distribucija ima alat koji to automatski obavlja, a zove se „logrotate“. Logrotate je obično konfigurisan da radi kao cron posao ili systemd timer.

Podrazumevano, većina distribucija pokreće logrotate svakodnevno. Logrotate kompresuje starije logove pomoću gzip-a, što dokazuju ekstenzije datoteka „.gz“. Koristi prag, poput starosti datoteke ili njene veličine, za obavljanje ove radnje, kao i drugi prag za eventualno brisanje starih log datoteka.

Podrazumevane opcije za logrotaciju su dovoljne za većinu korisnika. Možete da prilagodite ponašanje logrotate-a uređivanjem datoteke /etc/logrotate.conf kao superkorisnik, kao i menjanjem cron ili systemd timer datoteka vašeg sistema, ali ove operacije su relevantne samo za administratore servera.

Umesto podešavanja konfiguracionih datoteka kako biste uštedeli prostor na disku, bolje je da rešite problem koji popunjava vaše logove. Ako baš morate da promenite konfiguraciju, možete pročitati logrotate stranicu priručnika.

Koje logove je bezbedno izbrisati?

Ako ništa drugo ne uspe i očajnički želite da oslobodite prostor na disku, možete ručno izbrisati arhivirane log datoteke koje se završavaju sa „.gz“ pre nego što to uradi logrotate. Možete koristiti rm, ali ćete morati da ga pokrenete kao superkorisnik pošto ove datoteke pripadaju sistemu:

 sudo rm /var/syslog/syslog.*gz 

Ova naredba će izbrisati sve datoteke koje sadrže „syslog“ i završavaju se sa „gz“.

Uvek budite veoma oprezni kada koristite sudo komande, posebno destruktivne komande kao što je rm!

Generalno, ne biste trebali da brišete datoteke u sistemskim direktorijumima bez potpunog razumevanja posledica, ali arhivirani logovi neće prouzrokovati probleme ako ih nema. Ako ipak dođe do problema, možda će vam biti potrebni stariji logovi.

Kako rešiti problem koji popunjava vaše logove

Najbolji način da saznate šta popunjava vaše logove je da pratite logove pomoću opcija journalctl ili tail -f. Obratite pažnju na ponavljajuće poruke o greškama.

Moraćete da se pozabavite problematičnim procesom da biste uštedeli prostor na disku. Ako niste sigurni šta uzrokuje grešku, pretražite internet ili potražite pomoć na kanalima podrške vaše distribucije. Kada rešite problem, možete bezbedno izbrisati starije logove. Sada bi trebalo da imate mnogo više prostora na disku.