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 ਦੇ ਅੰਦਰ ਲੁਕੇ ਨਿਯਮ ਦੀ ਨਹੀਂ, ਅਤੇ ਕੋਈ ਵੀ ਲੌਗ ਬੰਦੋਬਸਤ ਚੱਲ ਰਹੇ ਟਨਲ ਨੂੰ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰਨ ਦਾ ਕਾਰਨ ਨਹੀਂ ਬਣਨਾ ਚਾਹੀਦਾ।

ਸੰਬੰਧਿਤ ਲੇਖ