Logrotate je nástroj příkazového řádku systému Linux pro správu položek protokolu. Tento nástroj pomáhá provádět různé typy úloh na položkách protokolu správcem, jako je omezení rotovaných souborů protokolu, komprimace rotovaných souborů protokolu, mazání nepotřebných souborů protokolu, spuštění konkrétního skriptu shell na základě souborů protokolu atd. příkazu „logrorate“ pro správu souborů protokolu různými způsoby jsou v tomto tutoriálu uvedeny na několika příkladech.
Zkontrolujte nainstalovanou verzi Logrotate
Příkaz „logrotate“ je standardně nainstalován v nové verzi operačního systému Ubuntu. Spusťte následující příkaz a zkontrolujte nainstalovanou verzi příkazu „logrotate“:
$ logrotate --verze
Záznamy protokolu různých aplikací jsou standardně uloženy ve složce „/var/log“. Následující podobný obsah se zobrazí, pokud zkontrolujete obsah složky.
$ ls / byl / log
Nastavte konfiguraci „Logrotate“.
Nastavení hodnoty | Účel |
denně/týdně/měsíčně/ročně | Definuje dobu trvání rotace protokolů. |
otočit číslo | Definuje počet souborů, které budou zachovány před odstraněním starých souborů protokolu. |
komprimovat | Používá se ke kompresi souborů protokolu. |
komprimovatcmd | Slouží k nastavení příkazu „compress“. Výchozí příkaz je gzip. |
dekomprimovatcmd | Používá se k nastavení příkazu „uncompress“. gunzip je výchozí příkaz. |
delaycompress | Používá se ke zpoždění procesu komprese souborů protokolu. |
oznámení prázdné | Slouží k neotáčení prázdného souboru. |
postrádám | Pokud je nastavena, nevygeneruje se pro chybějící soubory protokolu žádná chyba. |
velikost | Používá se k nastavení limitu pro zahájení rotace souborů protokolu. |
dateext | Používá se k přidání hodnoty data jako přípony rotovaného souboru. |
copytruncate | Slouží k vytvoření kopie původního souboru. |
předtočené | Používá se ke spuštění skriptu před otočením souborů protokolu. |
postrotovat | Používá se ke spuštění skriptu po otočení souborů protokolu. |
vytvořit | Používá se k vytváření souborů protokolu s oprávněním root. |
Syntax:
Syntaxe příkazu „logrotate“ je dána následovně:
logrotate [ VOLBA ] cesta_konfiguračního_souboru
Pomocí příkazu „logrotate“ lze pro různé účely použít různé typy voleb.
Možnosti Logrotate
Některé užitečné možnosti příkazu „logrotate“ jsou uvedeny níže:
-f, –sil | V případě potřeby se používá k silnému otáčení. |
-d, –ladit | Používá se k povolení režimu ladění během otáčení. |
-m, –mail | Slouží k odeslání emailu během rotace. |
-s, –state |
Používá se pro soubory alternativního stavu. |
-používání | Používá se k tisku informací o použití. |
-?, -Pomoc | Používá se k tisku pomocných zpráv. |
-v, –verbose | Používá se k tisku v podrobném režimu. |
Logrotate konfigurační soubor
Hlavní konfigurační soubor logrotate se nachází v umístění „/etc/logrotate.conf“. Spusťte následující příkaz a otevřete soubor v editoru nano:
$ nano / atd / logrotate.confVýchozí nastavení příkazu „logrotate“ je zobrazeno v souboru „logrotate.conf“. Direktiva „include“ se v souboru používá k načtení konfigurace, která se nachází v adresáři „/etc/logrotate.d“.
Příklad 1: Vytvořte jednoduchý konfigurační soubor Logrotate
Vytvořte vzorový soubor protokolu s názvem „/var/log/test.log“ se vzorovými daty protokolu. Spuštěním následujícího příkazu otevřete editor nano a vytvořte nový soubor „logrotate.conf“ v umístění složky „/etc/tmp“. Vytvořte složku „/tmp“ s právy root, pokud nebyla vytvořena dříve.
$ nano / atd / tmp / logrotate.confPřidejte následující obsah do souboru pro soubor „/var/log/test.log“. Podle nastavení bude soubor „test.log“ denně rotován, pokud velikost souboru přesáhne 5 kB:
/ byl / log / test.log {denně
velikost 5 tis
jeho root adm
}
Spusťte následující příkaz a zkontrolujte velikost souboru protokolu:
$ ls -l / byl / log / test.logPo vytvoření konfiguračního souboru spusťte příkaz „logrotate“.
$ sudo logrotate / atd / tmp / logrotate.confSpusťte znovu následující příkaz a zkontrolujte velikost souboru protokolu po provedení příkazu „logrotate“:
$ ls -l / byl / log / test.logVelikost souboru „test.log“ je 1K+. Na základě nastavení konfigurace se tedy neprovádí žádné otáčení.
Změňte hodnotu velikosti na 1 kB v souboru „/etc/tmp/logrotate.conf“ a znovu spusťte příkaz „ls“, abyste zkontrolovali velikost souboru „/var/log/test.log“. Podle výstupu se soubor protokolu otočí a odstraní, protože je překročen limit velikosti.
Příklad 2: Použití Logrotate Copytruncate
Vytvořte nebo upravte soubor „/etc/tmp/logrotate.conf“ s následujícím nastavením, aby bylo vidět použití copytruncate. Podle nového nastavení logrotate vytvoří kopii původního souboru nastavením původní velikosti souboru na nulu.
/ byl / log / test.log {točit se 5
velikost 1 k
copytruncate
jeho root adm
}
Spusťte následující příkaz a zkontrolujte velikost souboru „test.log“:
$ ls -l / byl / log / test.logPo vytvoření konfiguračního souboru spusťte příkaz „logrotate“.
$ sudo logrotate / atd / tmp / logrotate.confSpusťte znovu následující příkaz a zkontrolujte velikost souboru „test.log“ po provedení příkazu „logrotate“:
$ ls -l / byl / log / test.logPůvodní velikost souboru se stane 0 po provedení příkazu „logrotate“ pro nastavení copytruncate.
Příklad 3: Použití Logrotate Compress
Vytvořte nebo upravte soubor „/etc/tmp/logrotate.conf“ s následujícím nastavením, abyste ukázali použití komprese. Podle nového nastavení logrotate vytvoří komprimovaný soubor původního souboru.
/ byl / log / test.log {točit se 5
velikost 1 k
komprimovat
vytvořit 770 root adm
}
Spusťte následující příkaz a zkontrolujte seznam souborů a složek „/var/log“:
$ ls / byl / log /Po vytvoření konfiguračního souboru spusťte příkaz „logrotate“.
$ sudo logrotate / atd / tmp / logrotate.confSpusťte znovu následující příkaz a zkontrolujte seznam souborů a složek „/var/log“:
$ ls / byl / log /Vytvoří se komprimovaný soubor souboru „test.log“ s názvem „test.log.1.gz“ a původní soubor se odstraní.
Příklad 4: Použití Logrotate Dateext
Vytvořte nebo upravte soubor „/etc/tmp/logrotate.conf“ s následujícím nastavením, aby bylo vidět použití dateext. Podle nového nastavení logrotate vytvoří komprimovaný soubor původního souboru s hodnotou data.
byl / log / test.log {jeho root adm
točit se 5
velikost 1 k
komprimovat
vytvořit 770 root adm
dateext
}
Po vytvoření konfiguračního souboru spusťte příkaz „logrotate“.
$ sudo logrotate / atd / tmp / logrotate.confSpusťte následující příkaz a zkontrolujte seznam souborů a složek „/var/log“:
$ ls -l / byl / log /Vytvoří se komprimovaný soubor souboru „test.log“ s názvem „test.log.20240129.gz“ a původní soubor se odstraní.
Příklad 5: Použití Logrotate Maxage
Vytvořte nebo upravte soubor „/etc/tmp/logrotate.conf“ s následujícím nastavením, abyste ukázali použití maxage. Podle nastavení logrotate uchovává pět položek protokolu, pokud velikost souboru protokolu po jednom dni přesáhne 1 kB.
/ byl / log / test.log {jeho root adm
točit se 5
velikost 1 k
komprimovat
maxage 1
}
Spusťte následující příkaz „logrotate“ pro uložení výstupu do jiného souboru protokolu s názvem „out.log“:
$ sudo logrotate -s = / byl / log / out.log / atd / tmp / logrotate.confPodle následujícího výstupu se soubor „out.log“ vytvoří po provedení příkazu „logrotate“:
Příklad 6: Použití Logrotate Missingok
Vytvořte nebo upravte soubor „/etc/tmp/logrotate.conf“ s následujícím nastavením. Zde soubor protokolu „testfile.log“ ve složce „/var/log“ neexistuje.
/ byl / log / testfile.log {jeho root adm
točit se 5
velikost 1 k
komprimovat
}
Po provedení příkazu „logrotate“ se vytiskne chybové hlášení.
Přidejte nastavení „missingok“ do konfiguračního souboru logrotate a znovu spusťte příkaz „logrotate“. Pro chybějící soubor protokolu se nevytiskne žádná chyba.
Příklad 7: Použití Logrotate Prerotate
Vytvořte soubor Bash s názvem „test.sh“ pomocí následujícího skriptu, který vytiskne jednoduchou zprávu. Soubor je použit v tomto příkladu logrotate k ukázce použití prerotate v konfiguračním souboru logrotate.
test.sh#!/bin/bash
echo 'logrotate příklady...'
Po vytvoření souboru spusťte následující příkaz a nastavte oprávnění ke spuštění tohoto souboru pro všechny uživatele:
$ chmod a+x / Domov / porozumění / test.shNyní vytvořte nebo upravte soubor „/etc/tmp/logrotate.conf“ s následujícím nastavením. Podle nastavení logrotate uchovává pět položek protokolu, pokud velikost souboru protokolu přesáhne 1 kB a soubor „test.sh“ je spuštěn před rotací.
/ byl / log / test.log {jeho root adm
točit se 5
velikost 1 k
předtočené
/ Domov / porozumění / test.sh
koncový skript
}
Výstup souboru „test.sh“ se zobrazí po provedení příkazu „logrotate“:
Závěr
Různá použití příkazu „logrotate“ jsou ukázána v tomto tutoriálu na několika příkladech, které pomohou uživateli Linuxu poznat použití příkazu a správně spravovat soubory protokolu.