Ang logrotate ay isang command-line tool ng Linux upang pamahalaan ang mga log entry. Ang tool na ito ay tumutulong na magsagawa ng iba't ibang uri ng mga gawain sa mga log entries ng administrator tulad ng paglilimita sa mga rotated log files, pag-compress ng rotated log files, pagtanggal ng mga hindi kinakailangang log files, pag-execute ng partikular na shell script batay sa log files, atbp. Ang mga gamit ng command na 'logrorate' para sa pamamahala ng mga log file sa iba't ibang paraan ay ipinapakita sa tutorial na ito gamit ang maraming halimbawa.
Suriin ang Naka-install na Bersyon ng Logrotate
Ang command na 'logrotate' ay naka-install bilang default sa bagong bersyon ng operating system ng Ubuntu. Patakbuhin ang sumusunod na command upang suriin ang naka-install na bersyon ng command na 'logrotate':
$ logrotate --bersyon
Ang mga log entry ng iba't ibang mga application ay naka-store sa '/var/log' na folder bilang default. Ang sumusunod na katulad na nilalaman ay lilitaw kung titingnan mo ang nilalaman ng folder.
$ ls / ay / log
Itakda ang 'Logrotate' Configuration
Pagtatakda ng halaga | Layunin |
araw-araw / lingguhan / buwanan / taon-taon | Tinutukoy nito ang tagal ng oras upang paikutin ang mga log. |
iikot ang numero | Tinutukoy nito ang bilang ng mga file na itatago bago alisin ang mga lumang log file. |
compress | Ito ay ginagamit upang i-compress ang mga file ng log. |
compresscmd | Ito ay ginagamit upang itakda ang 'compress' na utos. Ang gzip ay ang default na utos. |
uncompresscmd | Ito ay ginagamit upang itakda ang 'uncompress' na utos. Ang gunzip ay ang default na utos. |
delaycompress | Ginagamit ito upang maantala ang proseso ng compression ng mga log file. |
walang laman ang notification | Ito ay ginagamit upang hindi paikutin ang walang laman na file. |
nawawala ako | Kung ito ay nakatakda, walang error na nabuo para sa mga nawawalang log file. |
laki | Ito ay ginagamit upang itakda ang limitasyon upang simulan ang pag-ikot ng mga log file. |
dateext | Ginagamit ito upang magdagdag ng halaga ng petsa bilang suffix ng rotate file. |
copytruncate | Ito ay ginagamit upang lumikha ng isang kopya ng orihinal na file. |
prerotated | Ito ay ginagamit upang magpatakbo ng isang script bago paikutin ang mga log file. |
postrotate | Ito ay ginagamit upang magpatakbo ng isang script pagkatapos iikot ang mga file ng log. |
lumikha | Ginagamit ito upang lumikha ng mga log file na may pribilehiyong ugat. |
Syntax:
Ang syntax ng command na 'logrotate' ay ibinibigay bilang mga sumusunod:
logrotate [ OPTION ] config_file_path
Maaaring gamitin ang iba't ibang uri ng mga opsyon para sa iba't ibang layunin gamit ang command na 'logrotate'.
Mga Opsyon sa Logrotate
Ang ilang mga kapaki-pakinabang na opsyon ng command na 'logrotate' ay binanggit sa sumusunod:
-f, –puwersa | Ito ay ginagamit upang gawin ang pag-ikot nang malakas kung kinakailangan. |
-d, –debug | Ito ay ginagamit upang paganahin ang debug mode sa panahon ng pag-ikot. |
-m, –mail |
Ito ay ginagamit upang magpadala ng isang email sa panahon ng pag-ikot. |
-s, -state |
Ginagamit ito para sa mga alternatibong file ng estado. |
-gamit | Ito ay ginagamit upang i-print ang impormasyon ng paggamit. |
-?, -tulong | Ito ay ginagamit upang i-print ang mga mensaheng tumutulong. |
-v, –verbose | Ito ay ginagamit upang mag-print sa verbose mode. |
Logrotate Configuration File
Ang pangunahing logrotate configuration file ay matatagpuan sa '/etc/logrotate.conf' na lokasyon. Patakbuhin ang sumusunod na command upang buksan ang file sa nano editor:
$ nano / atbp / logrotate.confAng default na setting ng command na 'logrotate' ay ipinapakita sa 'logrotate.conf' na file. Ang 'include' na direktiba ay ginagamit sa file upang kunin ang configuration na matatagpuan sa '/etc/logrotate.d' na direktoryo.
Halimbawa 1: Gumawa ng Simple Logrotate Configuration File
Gumawa ng sample na log file na pinangalanang “/var/log/test.log” kasama ang sample log data. Patakbuhin ang sumusunod na command para buksan ang nano editor para gumawa ng bagong 'logrotate.conf' na file sa lokasyon ng folder na '/etc/tmp'. Lumikha ng folder na '/tmp' na may mga pribilehiyo sa ugat kung hindi ito nilikha noon.
$ nano / atbp / tmp / logrotate.confIdagdag ang sumusunod na content sa file para sa “/var/log/test.log” file. Ayon sa setting, ang 'test.log' file ay iikot araw-araw kung ang laki ng file ay lumampas sa 5K:
/ ay / log / pagsubok.log {araw-araw
laki 5K
kanyang ugat adm
}
Patakbuhin ang sumusunod na command upang suriin ang laki ng log file:
$ ls -l / ay / log / pagsubok.logPatakbuhin ang command na 'logrotate' pagkatapos gawin ang configuration file.
$ sudo logrotate / atbp / tmp / logrotate.confPatakbuhin muli ang sumusunod na command upang suriin ang laki ng log file pagkatapos isagawa ang command na 'logrotate':
$ ls -l / ay / log / pagsubok.logAng laki ng 'test.log' na file ay 1K+. Kaya, walang pag-ikot na ginagawa batay sa setting ng pagsasaayos.
Baguhin ang halaga ng laki sa 1K sa '/etc/tmp/logrotate.conf' na file at patakbuhin muli ang command na 'ls' upang suriin ang laki ng file ng '/var/log/test.log'. Ayon sa output, ang log file ay pinaikot at tinanggal dahil ang limitasyon sa laki ay lumampas.
Halimbawa 2: Paggamit ng Logrotate Copytruncate
Gumawa o baguhin ang “/etc/tmp/logrotate.conf” na file gamit ang mga sumusunod na setting upang ipakita ang paggamit ng copytruncate. Ayon sa bagong mga setting, ang logrotate ay lumilikha ng isang kopya ng orihinal na file sa pamamagitan ng paggawa ng orihinal na laki ng file sa zero.
/ ay / log / pagsubok.log {paikutin 5
laki 1k
copytruncate
kanyang ugat adm
}
Patakbuhin ang sumusunod na command upang suriin ang laki ng “test.log” file:
$ ls -l / ay / log / pagsubok.logPatakbuhin ang command na 'logrotate' pagkatapos gawin ang configuration file.
$ sudo logrotate / atbp / tmp / logrotate.confPatakbuhin muli ang sumusunod na command upang suriin ang laki ng 'test.log' na file pagkatapos isagawa ang command na 'logrotate':
$ ls -l / ay / log / pagsubok.logAng orihinal na laki ng file ay nagiging 0 pagkatapos isagawa ang command na 'logrotate' para sa setting ng copytruncate.
Halimbawa 3: Paggamit ng Logrotate Compress
Gumawa o baguhin ang '/etc/tmp/logrotate.conf' na file gamit ang mga sumusunod na setting upang ipakita ang paggamit ng compress. Ayon sa bagong mga setting, ang logrotate ay lumilikha ng isang compress file ng orihinal na file.
/ ay / log / pagsubok.log {paikutin 5
laki 1k
compress
lumikha 770 ugat adm
}
Patakbuhin ang sumusunod na command upang suriin ang listahan ng mga file at folder ng '/var/log':
$ ls / ay / log /Patakbuhin ang command na 'logrotate' pagkatapos gawin ang configuration file.
$ sudo logrotate / atbp / tmp / logrotate.confPatakbuhin muli ang sumusunod na command upang suriin ang listahan ng mga file at folder ng '/var/log':
$ ls / ay / log /Ang naka-compress na file ng 'test.log' file ay ginawa gamit ang pangalang 'test.log.1.gz' at ang orihinal na file ay tinanggal.
Halimbawa 4: Paggamit ng Logrotate Dateext
Gumawa o baguhin ang “/etc/tmp/logrotate.conf” na file gamit ang mga sumusunod na setting upang ipakita ang paggamit ng dateext. Ayon sa mga bagong setting, ang logrotate ay lumilikha ng isang compress file ng orihinal na file na may halaga ng petsa.
ay / log / pagsubok.log {kanyang ugat adm
paikutin 5
laki 1k
compress
lumikha 770 ugat adm
dateext
}
Patakbuhin ang command na 'logrotate' pagkatapos gawin ang configuration file.
$ sudo logrotate / atbp / tmp / logrotate.confPatakbuhin ang sumusunod na command upang suriin ang listahan ng mga file at folder ng '/var/log':
$ ls -l / ay / log /Ang naka-compress na file ng 'test.log' file ay ginawa gamit ang pangalang 'test.log.20240129.gz' at ang orihinal na file ay aalisin.
Halimbawa 5: Paggamit ng Logrotate Maxage
Gumawa o baguhin ang “/etc/tmp/logrotate.conf” na file gamit ang mga sumusunod na setting upang ipakita ang paggamit ng maxage. Ayon sa mga setting, ang logrotate ay nagpapanatili ng limang log entries kung ang laki ng log file ay lumampas sa 1K pagkatapos ng isang araw.
/ ay / log / pagsubok.log {kanyang ugat adm
paikutin 5
laki 1k
compress
maxage 1
}
Patakbuhin ang sumusunod na command na 'logrotate' upang iimbak ang output sa isa pang log file na pinangalanang 'out.log':
$ sudo logrotate -s = / ay / log / out.log / atbp / tmp / logrotate.confAyon sa sumusunod na output, ang 'out.log' na file ay nilikha pagkatapos isagawa ang 'logrotate' na utos:
Halimbawa 6: Paggamit ng Logrotate Missingok
Gumawa o baguhin ang “/etc/tmp/logrotate.conf” na file gamit ang mga sumusunod na setting. Dito, ang 'testfile.log' log file ay hindi umiiral sa '/var/log' na folder.
/ ay / log / testfile.log {kanyang ugat adm
paikutin 5
laki 1k
compress
}
Ang isang mensahe ng error ay naka-print pagkatapos isagawa ang 'logrotate' na utos.
Idagdag ang setting na 'missingok' sa logrotate configuration file at patakbuhin muli ang command na 'logrotate'. Walang error na naka-print para sa nawawalang log file.
Halimbawa 7: Paggamit ng Logrotate Prerotate
Gumawa ng Bash file na pinangalanang 'test.sh' gamit ang sumusunod na script na nagpi-print ng simpleng mensahe. Ginagamit ang file sa halimbawang logrotate na ito upang ipakita ang paggamit ng prerotate sa logrotate configuration file.
pagsubok.sh#!/bin/bash
echo 'logrotate na mga halimbawa...'
Pagkatapos gawin ang file, patakbuhin ang sumusunod na command para itakda ang pahintulot sa pagpapatupad ng file na ito para sa lahat ng user:
$ chmod a+x / bahay / pagkakaunawaan / pagsubok.shNgayon, gawin o baguhin ang '/etc/tmp/logrotate.conf' na file gamit ang mga sumusunod na setting. Ayon sa mga setting, ang logrotate ay nagpapanatili ng limang log entry kung ang laki ng log file ay lumampas sa 1K at ang 'test.sh' na file ay naisakatuparan bago ang pag-ikot.
/ ay / log / pagsubok.log {kanyang ugat adm
paikutin 5
laki 1k
prerotated
/ bahay / pagkakaunawaan / pagsubok.sh
endscript
}
Ang output ng 'test.sh' na file ay ipinapakita pagkatapos isagawa ang 'logrotate' na utos:
Konklusyon
Ang iba't ibang paggamit ng command na 'logrotate' ay ipinapakita sa tutorial na ito gamit ang maraming halimbawa na makakatulong sa gumagamit ng Linux na malaman ang mga gamit ng command at maayos na pamahalaan ang mga log file.