Një kontroll shëndetësor i VPN që shton një rresht në minutë krijon në heshtje një detyrë të dytë: të vendosë si ato rreshta largohen nga disku. Rregullimi i tunelit nuk bën asgjë për atë detyrë, dhe riemërtimi i skedarit nuk ridrejton një proces që ende mban përshkruesin e vjetër. Përgjigjuni fillimisht pyetjes së destinacionit, pastaj përshtatni rrotullimin me mënyrën se si shkruesi e hap atë.

Zgjidhni destinacionin para politikës së rrotullimit

Një njësi systemd që tashmë e dërgon daljen e saj në ditar e mban mbajtjen në një vend. journald zbaton kufizime si SystemMaxUse dhe MaxRetentionSec , kështu që një rojtar që regjistron atje trashëgon një kufi pa punë shtesë. Shtimi i një skedari të dytë pa kufi pranë tij dyfishon mirëmbajtjen pa përfitim.

Një skedar i dedikuar e fiton vendin e tij kur diçka tjetër e lexon: një analizues, një eksport auditimi ose një faqe që pret një shteg të qëndrueshëm. Pasi merret ky vendim, skedari ka nevojë për një pronar, një modalitet dhe një politikë rrotullimi të shkruara së bashku, sepse të tre janë të saktë vetëm si grup. Një shteg që kushdo mund ta krijojë është gjithashtu një shteg që kushdo mund ta zëvendësojë, prandaj lejet e drejtorisë i përkasin të njëjtës shënim. Shkruani gjithçka pranë kontrollit dhe redaktimi tjetër do të nisë nga të njëjtat fakte.

Shkruani blokun që përputhet me shkruesin

Filloni me një shkrues që e hap shtegun në çdo thirrje, shton një rresht dhe del. Ai model i mbijeton rrotullimit pa asnjë bashkëpunim nga procesi, sepse ekzekutimi tjetër hap skedarin që ndodhet aktualisht në atë shteg. Bloku më poshtë mban një javë versionesh dhe e rikrijon skedarin me pronarin dhe modalitetin që i duhen shkruesit:

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

Manuali i logrotate e përcakton numrin si numrin e versioneve të rrotulluara të mbajtura, jo si një garanci për shtatë ditë historiku, dhe fjala kyçe daily vlerësohet kur puna ekzekutohet në vend që të veprojë si planifikuesi i vet. Në shumicën e shpërndarjeve një kohëmatës systemd ose një hyrje cron tashmë e zotëron atë thirrje, prandaj kontrolloni cila ekziston përpara se të shtoni një të dytë. Përputhja e pronësisë ka më shumë rëndësi se numri i mbajtjes. Kopjimi i një modaliteti vetëm për root mbi një skedar që shkruhet nga një llogari shërbimi e ndal regjistrimin në rrotullimin tjetër, dhe dështimi shfaqet orë më vonë si një vulë kohore e vjetëruar dhe jo si gabim. Konfirmoni përdoruesin e shkruesit përpara se të kopjoni një blok nga diku tjetër.

Një shkrues që nuk rihapet kurrë ka nevojë për një zgjidhje tjetër

Një proces afatgjatë që mban një përshkrues të hapur vazhdon të shkruajë në inode-n e riemërtuar. Hapësira nuk lirohet dhe skedari i dukshëm ndalon së rrituri, gjë që duket si rrotullim i thyer derisa të kontrolloni inode-n. Ose mësojini procesit të rihapet, ose bëni që rrotullimi të kopjojë dhe të presë në vend të riemërtimit.

Rruga e rihapjes është më e pastra atje ku softueri e mbështet: dërgoni sinjalin e dokumentuar ose ekzekutoni komandën e dokumentuar, dhe lëreni procesin ta hapë vetë skedarin e ri. Alternativa është copytruncate , e cila kopjon përmbajtjen në emrin e rrotulluar dhe pastaj e pret origjinalin në vend, kështu që përshkruesi mbetet i vlefshëm, por shkrimet që bien midis kopjimit dhe prerjes humbin.

Për njësitë e nisura nga systemd, drejtojeni StandardOutput nga ditari ose nga një skedar dhe lëreni njësinë të zotërojë ciklin e jetës. Një cikël shell që shton përmes tee -a pa kufi madhësie është rregullimi që mbush një ndarje gjatë një ndërprerjeje, sepse një kontroll që dështon shpesh regjistron shumë më tepër se një i shëndetshëm.

Provojeni rrotullimin pa pritur kohëmatësin

Modaliteti i korrigjimit raporton çfarë do të ndodhte dhe nuk prek asgjë, gjë që e bën atë ekzekutimin e parë të sigurt pas një redaktimi. Kur të jeni të kënaqur, impononi një rrotullim të vërtetë, pastaj konfirmoni se rreshti tjetër i regjistrit zbarkon në skedarin e ri dhe jo në atë të riemërtuar:

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

Lexoni daljen në atë renditje. Kalimi i korrigjimit duhet të emërtojë skedarin dhe veprimet që synon; ekzekutimi i imponuar duhet të prodhojë emrin e rrotulluar të pritur; tail duhet të tregojë një hyrje të freskët pasi shkruesi të ekzekutohet përsëri. Një vlerë df në rritje me një skedar të dukshëm që tkurret do të thotë problemi i përshkruesit i përshkruar më sipër.

Përsëriteni ekzekutimin e imponuar dy herë për të parë si sillet mbajtja kur versionet ekzistojnë tashmë. Fshirja e skedarit më të vjetër është rezultati i pritur, dhe një fshirje që mungon zakonisht do të thotë që numri ose karakteri i egër në emrin e rrotulluar nuk përputhet me atë që krijoi logrotate.

Ruani një kthim pas dhe një regjistrim të shkruar

Ruani blokun e mëparshëm para redaktimit dhe shënoni cili planifikues e ekzekuton, sepse një kthim pas që rikthen skedarin por jo kohëmatësin riprodhon gjysmën e problemit origjinal. Rrotulloni një herë me dorë pas rikthimit, pastaj konfirmoni që llogaria e shkruesit mund të shkruajë në shtegun e regjistrit. Nëse shërbimi ekzekutohet nën systemd, ringarkoni njësinë pas çdo ndryshimi në ridrejtimin e daljes së saj, sepse procesi që ekzekutohet vazhdon të shkruajë në objektivin e vjetër. Lexoni vetë rreshtat e tjerë të regjistrit në vend që të mbështeteni se njësia u kthye pastër.

Regjistroni modalitetin, pronarin, numrin e mbajtjes dhe buxhetin e pritur të diskut pranë vetë kontrollit. Kur më vonë kontrolli të ndryshojë nga një skript njëherësh në një demon, politika e rrotullimit duhet të ndryshojë me të, dhe ai shënim i thotë personit tjetër cili supozim u thye.

Së fundi, mbani vendimin e regjistrit të ndarë nga vendimi i rikuperimit. Një kontroll që dështon duhet të ndjekë politikën e vet të rikuperimit të lidhjes, jo një rregull të fshehur brenda logrotate, dhe asnjë rregullim regjistrimi nuk duhet të jetë arsyeja për të rinisur një tunel që funksionon.

Artikuj të ngjashëm