VPN-i tervisekontroll, mis lisab minutis ühe rea, loob vaikselt teise kohustuse: otsustada, kuidas need read kettalt lahkuvad. Tunnelis parandamine ei tee selle kohustuse jaoks midagi ja faili ümbernimetamine ei suuna ümber protsessi, mis hoiab endiselt vana kirjeldajat. Vastake kõigepealt sihtkoha küsimusele ja seejärel sobitage pööramine viisiga, kuidas kirjutaja selle avab.

Valige sihtkoht enne pööramispoliitikat

systemd-üksus, mis juba saadab oma väljundi žurnaali, hoiab säilitamise ühes kohas. journald rakendab piiranguid nagu SystemMaxUse ja MaxRetentionSec , seega seal logiv valvur pärib piiri ilma lisatööta. Teise piiramatu faili kõrvale lisamine kahekordistab hooldust ilma kasuta.

Eraldi fail teenib oma koha siis, kui midagi muud seda loeb: parser, auditi eksport või leht, mis eeldab stabiilset rada. Kui see otsus on tehtud, vajab fail omanikku, režiimi ja pööramispoliitikat, mis kirjutatakse koos üles, sest kolm on õiged ainult komplektina. Rada, mille igaüks saab luua, on ka rada, mille igaüks saab asendada, seega kuuluvad kataloogi õigused samasse märkmesse. Kirjutage see kõik kontrolli kõrvale ja järgmine muudatus algab samadest faktidest.

Kirjutage plokk kirjutajaga sobivaks

Alustage kirjutajast, mis avab raja igal väljakutsel, lisab rea ja väljub. See muster elab pööramise üle ilma protsessi igasuguse koostööta, sest järgmine käivitus avab faili, mis parajasti sellel rajal asub. Allolev plokk hoiab ühe nädala versioone ja loob faili uuesti omaniku ja režiimiga, mida kirjutaja vajab:

/var/log/vpn-watchdog.log {
    daily
    rotate 7
    create 0600 root root
    missingok
    notifempty
}

logrotate'i käsiraamat määratleb arvu säilitatud pööratud versioonide arvuna, mitte garanteeritud seitsme päeva ajaloona, ja märksõna daily hinnatakse töö käivitamisel, selle asemel et toimida oma ajastiina. Enamikus distributsioonides omab seda väljakutset juba systemd-taimer või cron-kirje, seega kontrollige, milline neist olemas on, enne kui teise lisate. Omanike sobivus loeb rohkem kui säilitamise arv. Ainult rootile mõeldud režiimi kopeerimine failile, mida kirjutab teenusekonto, peatab logimise järgmisel pööramisel ja tõrge ilmub tunde hiljem aegunud ajatemplina, mitte veana. Kinnitage kirjutaja kasutaja enne, kui kopeerite ploki mujalt.

Kirjutaja, mis ei ava kunagi uuesti, vajab teistsugust parandust

Pikaajaline protsess, mis hoiab avatud kirjeldajat, kirjutab edasi ümbernimetatud inode'i. Ruum ei vabane ja nähtav fail lakkab kasvamast, mis näeb välja nagu katkine pööramine, kuni inode'i kontrollite. Õpetage protsessile uuesti avamist või laske pööramisel kopeerida ja kärpida ümbernimetamise asemel.

Uuesti avamise tee on puhtam seal, kus tarkvara seda toetab: saatke dokumenteeritud signaal või käivitage dokumenteeritud käsk ja laske protsessil uus fail ise avada. Alternatiiv on copytruncate , mis kopeerib sisu pööratud nime alla ja kärbib seejärel originaali kohapeal, nii et kirjeldaja jääb kehtivaks, kuid kopeerimise ja kärpimise vahele jäävad kirjutused lähevad kaotsi.

systemd käivitatud üksuste puhul suunake StandardOutput žurnaali või faili ja laske üksusel elutsükkel omada. Shell-tsükkel, mis lisab tee -a kaudu ilma suurusepiiranguta, on see korraldus, mis katkestuse ajal partitsiooni täidab, sest ebaõnnestuv kontroll logib sageli palju rohkem kui terve.

Testige pööramist ilma taimerit ootamata

Silumisrežiim teatab, mis juhtuks, ja ei puuduta midagi, mis teeb sellest pärast muudatust turvalise esimese käivituse. Kui olete rahul, sundige tõeline pööramine ja kinnitage seejärel, et järgmine logirida maandub uude faili, mitte ümbernimetatud faili:

logrotate -d /etc/logrotate.d/vpn-watchdog
logrotate -f /etc/logrotate.d/vpn-watchdog
ls -l /var/log/vpn-watchdog.log*
tail -n 3 /var/log/vpn-watchdog.log
df -h /var/log

Lugege väljundit selles järjekorras. Silumiskäik peaks nimetama faili ja kavatsetavad toimingud; sunnitud käik peaks andma oodatud pööratud nime; tail peaks näitama värsket kirjet pärast seda, kui kirjutaja uuesti töötab. Kasvav df väärtus koos kahaneva nähtava failiga tähendab ülalkirjeldatud kirjeldaja probleemi.

Korrake sunnitud käiku kaks korda, et näha, kuidas säilitamine käitub, kui versioonid on juba olemas. Vanima faili kustutamine on oodatud tulemus ja puuduv kustutamine tähendab tavaliselt, et arv või pööratud nime metamärk ei vasta sellele, mille logrotate lõi.

Hoidke tagasipööramine ja kirjalik ülestähendus

Salvestage eelmine plokk enne redigeerimist ja märkige, milline ajasti seda käitab, sest tagasipööramine, mis taastab faili, kuid mitte taimeri, taastoodab pool algse probleemi. Pärast taastamist pöörake korra käsitsi ja kinnitage seejärel, et kirjutaja konto saab logirajale kirjutada. Kui teenus töötab systemd all, laadige üksus uuesti pärast iga muudatust selle väljundi ümbersuunamises, sest töötav protsess kirjutab edasi vanasse sihtmärki. Lugege järgmised paar logirida ise, selle asemel et uskuda, et üksus tuli puhtalt tagasi.

Kirjutage režiim, omanik, säilitamise arv ja oodatav kettaruumi eelarve kontrolli enda kõrvale. Kui kontroll hiljem muutub ühekordsest skriptist deemoniks, peab pööramispoliitika sellega muutuma ja see märge ütleb järgmisele inimesele, milline eeldus purunes.

Lõpuks hoidke logiotsus taastamisotsusest eraldi. Ebaõnnestunud kontroll peaks järgima ühenduse enda taastamispoliitikat, mitte logrotate'i sisse peidetud reeglit, ja ükski logimiskorraldus ei tohiks olla põhjus, miks töötav tunnel uuesti käivitada.

Seotud artiklid