రచయితను విచ్ఛిన్నం చేయకుండా VPN వాచ్డాగ్ లాగ్ను తిప్పండి
మొదట గమ్యాన్ని నిర్ణయించండి, ఆపై రచయిత ఫైల్ను తెరిచే విధానానికి భ్రమణాన్ని సరిపోల్చండి: చిన్న తనిఖీలకు పేరు మార్చడం, డెమోన్కు తిరిగి తెరవడం లేదా copytruncate.
VPN ఆరోగ్య తనిఖీ నిమిషానికి ఒక పంక్తిని జోడిస్తూ నిశ్శబ్దంగా రెండవ బాధ్యతను సృష్టిస్తుంది: ఆ పంక్తులు డిస్క్ నుండి ఎలా బయటకు వెళ్తాయో నిర్ణయించడం. సొరంగాన్ని మరమ్మతు చేయడం ఆ బాధ్యతకు ఏమీ చేయదు, ఫైల్ పేరు మార్చడం పాత వివరణను ఇంకా పట్టుకున్న ప్రక్రియను మళ్లించదు. మొదట గమ్య ప్రశ్నకు సమాధానం ఇవ్వండి, ఆపై రచయిత దానిని తెరిచే విధానానికి భ్రమణాన్ని సరిపోల్చండి.
భ్రమణ విధానానికి ముందు గమ్యాన్ని ఎంచుకోండి
తమ అవుట్పుట్ను ఇప్పటికే జర్నల్కు పంపే systemd యూనిట్ నిల్వను ఒకే చోట ఉంచుతుంది. journald SystemMaxUse మరియు MaxRetentionSec వంటి పరిమితులను అమలు చేస్తుంది, కాబట్టి అక్కడ లాగ్ చేసే వాచ్డాగ్ అదనపు పని లేకుండా పరిమితిని వారసత్వంగా పొందుతుంది. దాని పక్కన రెండవ అపరిమిత ఫైల్ను జోడించడం ప్రయోజనం లేకుండా నిర్వహణను రెట్టింపు చేస్తుంది.
అంకితమైన ఫైల్ తన స్థానాన్ని సంపాదించుకుంటుంది మరేదైనా దానిని చదివినప్పుడు: పార్సర్, ఆడిట్ ఎగుమతి లేదా స్థిరమైన మార్గాన్ని ఆశించే పేజీ. ఆ నిర్ణయం తర్వాత, ఫైల్కు యజమాని, మోడ్ మరియు భ్రమణ విధానం కలిసి రాయబడాలి, ఎందుకంటే మూడూ ఒక సముదాయంగానే సరైనవి. ఎవరైనా సృష్టించగల మార్గమే ఎవరైనా భర్తీ చేయగల మార్గం, కాబట్టి డైరెక్టరీ అనుమతులు అదే గమనికలో ఉంటాయి. ఇవన్నీ తనిఖీ పక్కన రాయండి, తదుపరి సవరణ అదే వాస్తవాల నుండి ప్రారంభమవుతుంది.
రచయితకు సరిపోయే బ్లాక్ను రాయండి
ప్రతి పిలుపులో మార్గాన్ని తెరిచి, ఒక పంక్తిని జోడించి, బయటకు వెళ్లే రచయితతో ప్రారంభించండి. ఆ నమూనా ప్రక్రియ సహకారం లేకుండానే భ్రమణాన్ని తట్టుకుంటుంది, ఎందుకంటే తదుపరి పరుగు ఆ మార్గంలో ప్రస్తుతం ఉన్న ఫైల్ను తెరుస్తుంది. క్రింది బ్లాక్ ఒక వారం సంస్కరణలను ఉంచి, రచయితకు అవసరమైన యజమాని మరియు మోడ్తో ఫైల్ను తిరిగి సృష్టిస్తుంది:
/var/log/vpn-watchdog.log {
daily
rotate 7
create 0600 root root
missingok
notifempty
}
logrotate మాన్యువల్ గణనను నిల్వ చేయబడిన భ్రమణ సంస్కరణల సంఖ్యగా నిర్వచిస్తుంది, ఏడు రోజుల చరిత్రకు హామీగా కాదు, మరియు daily అనే పదం పని నడిచినప్పుడు మూల్యాంకనం చేయబడుతుంది, తన స్వంత షెడ్యూలర్గా పనిచేయడానికి బదులుగా. చాలా పంపిణీలలో systemd టైమర్ లేదా cron నమోదు ఇప్పటికే ఆ పిలుపును కలిగి ఉంటుంది, కాబట్టి రెండవది జోడించే ముందు ఏది ఉందో తనిఖీ చేయండి. యాజమాన్యాన్ని సరిపోల్చడం నిల్వ సంఖ్య కంటే ముఖ్యం. root కోసం మాత్రమే ఉన్న మోడ్ను సేవా ఖాతా రాసే ఫైల్పై కాపీ చేయడం తదుపరి భ్రమణంలో లాగింగ్ను ఆపేస్తుంది, మరియు వైఫల్యం గంటల తర్వాత లోపంగా కాకుండా పాత సమయముద్రగా కనిపిస్తుంది. మరెక్కడి నుండి బ్లాక్ కాపీ చేసే ముందు రచయిత వినియోగదారుని నిర్ధారించండి.
ఎప్పుడూ తిరిగి తెరవని రచయితకు మరో పరిష్కారం కావాలి
తెరిచిన వివరణను పట్టుకున్న దీర్ఘకాలిక ప్రక్రియ పేరు మార్చిన inode లోకి రాయడం కొనసాగిస్తుంది. స్థలం విడుదల కాదు, కనిపించే ఫైల్ పెరగడం ఆగిపోతుంది, ఇది inode తనిఖీ చేసే వరకు విరిగిన భ్రమణంలా కనిపిస్తుంది. ఒకటి ప్రక్రియకు తిరిగి తెరవడం నేర్పండి, లేదా భ్రమణాన్ని పేరు మార్చడానికి బదులుగా కాపీ చేసి కత్తిరించేలా చేయండి.
తిరిగి తెరిచే మార్గం సాఫ్ట్వేర్ మద్దతు ఉన్న చోట స్వచ్ఛంగా ఉంటుంది: డాక్యుమెంట్ చేసిన సంజ్ఞను పంపండి లేదా డాక్యుమెంట్ చేసిన ఆదేశాన్ని అమలు చేయండి, ప్రక్రియ కొత్త ఫైల్ను తానే తెరవనివ్వండి. ప్రత్యామ్నాయం copytruncate , ఇది కంటెంట్ను భ్రమణ పేరుకు కాపీ చేసి తర్వాత అసలుదాన్ని అదే చోట కత్తిరిస్తుంది, కాబట్టి వివరణ చెల్లుబాటులో ఉంటుంది కానీ కాపీ మరియు కత్తిరింపు మధ్య పడే రాతలు పోతాయి.
systemd ప్రారంభించే యూనిట్ల కోసం, StandardOutput ను జర్నల్కు లేదా ఫైల్కు మళ్లించి, జీవిత చక్రాన్ని యూనిటే కలిగి ఉండనివ్వండి. పరిమాణ పరిమితి లేకుండా tee -a ద్వారా జోడించే shell లూప్ అంతే, ఇది అంతరాయం సమయంలో విభజనను నింపుతుంది, ఎందుకంటే విఫలమైన తనిఖీ ఆరోగ్యకరమైన దాని కంటే చాలా ఎక్కువ లాగ్ చేస్తుంది.
టైమర్ కోసం వేచి ఉండకుండా భ్రమణాన్ని పరీక్షించండి
డీబగ్ మోడ్ ఏమి జరుగుతుందో నివేదిస్తుంది మరియు ఏదీ తాకదు, ఇది సవరణ తర్వాత మొదటి సురక్షిత పరుగుగా మారుతుంది. సంతృప్తి చెందిన తర్వాత నిజమైన భ్రమణాన్ని బలవంతం చేయండి, ఆపై తదుపరి లాగ్ పంక్తి పేరు మార్చిన ఫైల్లోకి కాకుండా కొత్త ఫైల్లోకి పడుతుందని నిర్ధారించండి:
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
అవుట్పుట్ను ఆ క్రమంలో చదవండి. డీబగ్ పాస్ ఫైల్ మరియు ఉద్దేశించిన చర్యలను పేర్కొనాలి; బలవంతపు పరుగు ఆశించిన భ్రమణ పేరును ఉత్పత్తి చేయాలి; tail రచయిత మళ్లీ నడిచిన తర్వాత కొత్త నమోదును చూపాలి. పెరుగుతున్న df విలువ మరియు తగ్గుతున్న కనిపించే ఫైల్ పైన వివరించిన వివరణ సమస్యను సూచిస్తాయి.
సంస్కరణలు ఇప్పటికే ఉన్నప్పుడు నిల్వ ఎలా ప్రవర్తిస్తుందో చూడటానికి బలవంతపు పరుగును రెండుసార్లు పునరావృతం చేయండి. పాత ఫైల్ను తొలగించడం ఆశించిన ఫలితం, మరియు తొలగింపు లేకపోవడం సాధారణంగా భ్రమణ పేరులోని గణన లేదా వైల్డ్కార్డ్ logrotate సృష్టించిన దానితో సరిపోలడం లేదని అర్థం.
రోల్బ్యాక్ మరియు లిఖిత నమోదు ఉంచండి
సవరణకు ముందు గత బ్లాక్ను సేవ్ చేయండి మరియు ఏ షెడ్యూలర్ దానిని నడుపుతుందో గుర్తించండి, ఎందుకంటే ఫైల్ను తిరిగి తెచ్చి టైమర్ను తీసుకురాని రోల్బ్యాక్ అసలు సమస్యలో సగం పునరుత్పత్తి చేస్తుంది. పునరుద్ధరణ తర్వాత ఒకసారి చేతితో తిప్పండి, ఆపై రచయిత ఖాతా లాగ్ మార్గంలో రాయగలదని నిర్ధారించండి. సేవ systemd కింద నడుస్తుంటే, దాని అవుట్పుట్ మళ్లింపులో ఏదైనా మార్పు తర్వాత యూనిట్ను తిరిగి లోడ్ చేయండి, ఎందుకంటే నడుస్తున్న ప్రక్రియ పాత లక్ష్యానికి రాయడం కొనసాగిస్తుంది. యూనిట్ శుభ్రంగా తిరిగి వచ్చిందని నమ్మడానికి బదులుగా తదుపరి కొన్ని లాగ్ పంక్తులను మీరే చదవండి.
మోడ్, యజమాని, నిల్వ సంఖ్య మరియు ఆశించిన డిస్క్ బడ్జెట్ను తనిఖీ పక్కనే నమోదు చేయండి. తర్వాత తనిఖీ ఒకసారి స్క్రిప్ట్ నుండి డెమోన్గా మారినప్పుడు, భ్రమణ విధానం కూడా దానితో మారాలి, మరియు ఆ గమనికే తదుపరి వ్యక్తికి ఏ ఊహ విరిగిందో చెబుతుంది.
చివరగా, లాగ్ నిర్ణయాన్ని పునరుద్ధరణ నిర్ణయం నుండి వేరుగా ఉంచండి. విఫలమైన తనిఖీ కనెక్షన్ యొక్క స్వంత పునరుద్ధరణ విధానాన్ని అనుసరించాలి, logrotate లోపల దాగిన నియమాన్ని కాదు, మరియు ఏ లాగ్ ఏర్పాటు పనిచేస్తున్న సొరంగాన్ని తిరిగి ప్రారంభించడానికి కారణం కాకూడదు.