VPN osasun-egiaztapenak minuturo lerro bat gehitzen duenak bigarren betebehar bat sortzen du isilean: lerro horiek disketik nola irteten diren erabakitzea. Tunela konpontzeak ez du ezer egiten betebehar horretarako, eta fitxategia berrizendatzeak ez du deskriptore zaharra oraindik duen prozesu bat birbideratzen. Erantzun lehenengo irteeraren galderari, eta gero egokitu biraketa idazleak irekitzen duen modura.

Aukeratu irteera biraketa-politika baino lehen

Dagoeneko bere irteera egunkarira bidaltzen duen systemd unitate batek atxikipena leku bakarrean mantentzen du. journald-ek SystemMaxUse eta MaxRetentionSec bezalako mugak ezartzen ditu, beraz han erregistratzen duen zaindariak muga bat heredatzen du lan gehigarririk gabe. Haren ondoan bigarren fitxategi mugagabe bat gehitzeak mantenua bikoizten du etekinik gabe.

Fitxategi dedikatu batek bere tokia irabazten du beste zerbait hura irakurtzen duenean: parser bat, auditoretza-esportazio bat edo bide egonkor bat espero duen orrialde bat. Erabaki hori hartuta, fitxategiak jabe bat, modu bat eta biraketa-politika bat behar ditu elkarrekin idatzita, hirurak multzo gisa baitira zuzenak. Edonork sor dezakeen bide bat edonork ordezkatu dezakeen bidea ere bada, beraz direktorioaren baimenak ohar berean sartzen dira. Idatzi hori guztia egiaztapenaren ondoan eta hurrengo aldaketak gertaera berberetatik hasiko dira.

Idatzi blokea idazlearekin bat etor dadin

Hasi bidea deialdi bakoitzean irekitzen duen, lerro bat gehitzen duen eta irteten den idazle batekin. Eredu horrek biraketa gainditzen du prozesuaren lankidetzarik gabe, hurrengo exekuzioak bide horretan unean dagoen fitxategia irekitzen baitu. Beheko blokeak astebete bertsio gordetzen ditu eta fitxategia idazleak behar duen jabearekin eta moduarekin berriz sortzen du:

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

logrotate eskuliburuak kopurua gordetako bertsio biratuen kopuru gisa definitzen du, ez zazpi eguneko historia bermatu gisa, eta daily gako-hitza lana exekutatzen denean ebaluatzen da, bere planifikatzaile gisa jardun beharrean. Banaketa gehienetan systemd tenporizadore batek edo cron sarrera batek jada deialdi hori dauka, beraz egiaztatu zein dagoen bigarren bat gehitu aurretik. Jabetza bat etortzeak atxikipen-kopuruak baino gehiago balio du. Rootentzako soilik den modu bat zerbitzu-kontu batek idatzitako fitxategi batera kopiatzeak erregistroa gelditzen du hurrengo biraketan, eta hutsegitea ordu batzuk geroago agertzen da denbora-marka zaharkitu gisa, errore gisa ez bezala. Egiaztatu idazlearen erabiltzailea beste nonbaitetik bloke bat kopiatu aurretik.

Inoiz berriz irekitzen ez duen idazleak beste konponbide bat behar du

Deskriptore irekia duen epe luzeko prozesu batek berrizendatutako inodera idazten jarraitzen du. Espazioa ez da askatzen eta ikusgai den fitxategia hazteari uzten dio, biraketa hautsi bat bezala ematen du inodea egiaztatu arte. Edo irakatsi prozesuari berriz irekitzen, edo egin biraketa kopiatu eta moztu berrizendatu beharrean.

Berriz irekitzeko bidea da garbiena softwareak onartzen duen lekuan: bidali dokumentatutako seinalea edo exekutatu dokumentatutako komandoa, eta utzi prozesuari fitxategi berria bera irekitzen. Alternatiba copytruncate da, edukia izen biratura kopiatzen duena eta gero jatorrizkoa tokian mozten duena, beraz deskriptorea baliozkoa izaten jarraitzen du baina kopia eta mozketa artean gertatzen diren idazketak galdu egiten dira.

systemd-k abiarazitako unitateetarako, bideratu StandardOutput egunkarira edo fitxategi batera eta utzi unitateari bizi-zikloa edukitzen. Tamaina-mugarik gabe tee -a bidez gehitzen duen shell begizta da etenaldi batean partizio bat betetzen duen antolamendua, huts egiten duen egiaztapenak osasuntsu batek baino askoz gehiago erregistratzen baitu sarritan.

Probatu biraketa tenporizadorearen zain egon gabe

Arazketa moduak zer gertatuko litzatekeen jakinarazten du eta ez dio ezer ukitzen, eta horrek aldaketaren ondorengo lehen exekuzio segurua bihurtzen du. Behar bezala zaudenean behartu biraketa erreala, eta gero egiaztatu hurrengo erregistro-lerroa fitxategi berrian erortzen dela, berrizendatuan ez bezala:

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

Irakurri irteera ordena horretan. Arazketa paseak fitxategia eta asmo dituen ekintzak izendatu beharko lituzke; behartutako exekuzioak espero zenuen izen biratua sortu beharko luke; tail-ek sarrera berria erakutsi beharko luke idazlea berriro exekutatu ondoren. df balio hazkorra ikusgai den fitxategi bat txikitzearekin batera goian deskribatutako deskriptore arazoa esan nahi du.

Errepikatu behartutako exekuzioa birritan, bertsioak jada daudenean atxikipenak nola jokatzen duen ikusteko. Fitxategi zaharrena ezabatzea espero den emaitza da, eta ezabatze bat falta bada normalean kopurua edo izen biratuko komodina logrotate-k sortutakoarekin bat ez datozela esan nahi du.

Gorde itzultzeko aukera eta erregistro idatzia

Gorde aurreko blokea editatu aurretik, eta idatzi zein planifikatzailek exekutatzen duen, fitxategia baina tenporizadorea ez dituen itzultzeak jatorrizko arazoaren erdia erreproduzitzen baitu. Berrezarri ondoren biratu behin eskuz, eta gero egiaztatu idazlearen kontuak erregistro-bidean idatz dezakeela. Zerbitzua systemd pean exekutatzen bada, berriz kargatu unitatea bere irteeraren birbideratzean edozein aldaketa egin ondoren, exekutatzen ari den prozesuak helburu zaharrera idazten jarraitzen baitu. Irakurri zu zeu hurrengo erregistro-lerro batzuk, unitatea garbi itzuli zela fidatu beharrean.

Erregistratu modua, jabea, atxikipen-kopurua eta espero den disko-aurrekontua egiaztapenaren ondoan bertan. Geroago egiaztapena behin-behineko script batetik daemon batera aldatzen denean, biraketa-politikak harekin aldatu behar du, eta ohar horrek esaten dio hurrengo pertsonari zein suposizio hautsi zen.

Azkenik, eduki erregistroaren erabakia berreskuratze-erabakitzat bereizita. Huts egiten duen zundaketak konexioaren berreskuratze-politika propioari jarraitu behar dio, ez logrotate barruan ezkutatutako arau bati, eta erregistro-antolamendu batek ere ez luke izan behar tunel bat lanean ari dela berrabiarazteko arrazoia.

Erlazionatutako artikuluak