๋“ค์–ด๊ฐ€๋ฉฐ

์„œ๋น„์Šค ์šด์˜ ์ค‘์—์„œ ์ ‘์†, ์—๋Ÿฌ๋กœ๊ทธ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ• ๊นŒ? ๊ณ ๋ฏผ์ด ๋˜์—ˆ๊ณ  ์ฐพ์•„๋ณด๋‹ˆ logrotate๋ฅผ ์•Œ๊ฒŒ ๋˜์–ด ์ •๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

How to install?

  • sudo yum install -y logrotate

logrotate ์„ค์ •์€ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ?

  • /etc/logrotate.conf๋ฅผ ํ†ตํ•ด ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • logrotate์˜ ๊ธฐ๋ณธ ์„ค์ •ํŒŒ์ผ

๊ทธ๋Ÿผ ์ถ”๊ฐ€/๋ณ€๊ฒฝ์€ ์–ด๋””์„œ ํ• ๊นŒ?

  • logrotate.d์— ์›ํ•˜๋Š” ์„ค์ • ํŒŒ์ผ์„ ์ถ”๊ฐ€/๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
logrotate.d
|-- dracut
|-- nginx
|-- psacct
|-- syslog
`-- yum

Example - nginx logrotate ํŒŒ์ผ

/var/log/nginx/*log {
    create 0664 nginx root  # [๊ถŒํ•œ ์œ ์ € ๊ทธ๋ฃน]์œผ๋กœ rotation๋œ ๋กœ๊ทธํŒŒ์ผ ์ƒ์„ฑ
    daily                   # ๋ฐฑ์—… ์ฃผ๊ธฐ daily, weekly, monthly, yearly
    rotate 10               # ์ตœ๋Œ€ ๋กœ๊ทธ ํŒŒ์ผ ๊ฐœ์ˆ˜
    missingok               # ๋กœ๊ทธ ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์•„๋„ ์—๋Ÿฌ๋ฐœ์ƒ X
    notifempty              # ๋กœ๊ทธ๊ฐ€ ๋น„์–ด์žˆ๋‹ค๋ฉด ๋กœํ…Œ์ดํŠธ ์ง„ํ–‰ X
    compress                # gzip์œผ๋กœ ์••์ถ•
    sharedscripts           # ๋กœ๊ทธํŒŒ์ผ์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ์–ด๋„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ณต์œ ํ•˜์—ฌ prerotate, postrotate ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ•œ๋ฒˆ๋งŒ ์‹คํ–‰
    postrotate              # ์‹คํ–‰ ํ›„ ์ŠคํŠธ๋ฆฝํŠธ ํŒŒ์ผ ์‹คํ–‰
        /etc/init.d/nginx reopen_logs
    endscript
}

logrotate ์ƒํƒœ ํŒŒ์ผ ํ™•์ธํ•˜๊ธฐ

  • /var/lib/logrotate.status์— ๊ธฐ๋กํ•˜์—ฌ cron์œผ๋กœ logrotate๋Š” ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
# cat /var/lib/logrotate.status

# logrotate.status #
logrotate state -- version 2
"/var/log/nginx/error.log" 2019-8-16

Reference