Logrotate

Linux logλ₯Ό κ΄€λ¦¬ν•΄μš”

References: man7.org, network.com, server-talk.tistory.com

https://byd0105.tistory.com/29

What is Logrotate?

  • Linux server의 logλ₯Ό κ΄€λ¦¬ν•˜λ„λ‘ μ„€μ •ν•˜λŠ” κΈ°λŠ₯

  • 보톡 기본적으둜 μ„€μΉ˜λ˜μ–΄ μžˆλ‹€

    • μ„€μΉ˜ 확인

      $ rpm -qa | grep logrotate
      logrotate-3.8.6-17.el7.x86_64
  • logrotate λŠ” log νŒŒμΌλ“€μ„ μ§€μ •ν•œ 섀정에 맞게 자λ₯΄κ³ , μ••μΆ•ν•˜κ³ , μ‚­μ œν•˜λŠ” 것을 λŒ€μ‹ ν•΄μ€€λ‹€

How logrotate works

: logrotateλŠ” cron을 톡해 λ™μž‘ν•˜λŠ”λ°, κ΄€λ ¨λœ file듀은 μ•„λž˜μ™€ κ°™λ‹€

  • /usr/sbin/logrotate

    • executable logrotate command

  • /etc/cron.daily/logrotate

    • logrotateλ₯Ό 맀일 μ‹€ν–‰ν•˜λŠ” shell script

    • logrotate μž‘μ—… λ‚΄μ—­ log

  • /etc/logrotate.conf

    • logrotate μ„€μ • 파일

  • /etc/logrotate.d

    • logrotate process μ„€μ • 파일

    • /etc/logroate.conf 에 ν•΄λ‹Ή directoryλ₯Ό ν¬ν•¨μ‹œν‚€λ„λ‘ 섀정함

      # RPM packages drop log rotation information into this directory
      include /etc/logrotate.d

Logrotate μ‹€ν–‰ μˆœμ„œ

  1. crontab

  2. cron.daily

  3. logrotate

  4. logrotate.conf

  5. logrotate.d

logrotate.conf

μ•„λž˜λŠ” logrotate.conf 의 μ˜ˆμ‹œμ΄λ‹€

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
# Log file의 κ°œμˆ˜κ°€ 3κ°œκ°€ 되면 첫번째 μƒμ„±λœ Log파일 μ‚­μ œ ν›„ 생성
rotate 4

# create new (empty) log files after rotating old ones
# μƒˆλ‘œμš΄ Log file의 생성 μ—¬λΆ€ - create: 생성o, empty: 생성x
create

# use date as a suffix of the rotated file
# 둜그 νŒŒμΌμ— λ‚ μ§œλ₯Ό λΆ€μ—¬ν•˜λŠ” option
dateext

# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
# Log process Rγ…•γ…‡λ‘œ
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}
/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}


# system-specific logs may be also be configured here.

Options

  • rotate [숫자] : log파일이 5개 이상 되면 μ‚­μ œ

    • ex) rotate 5

  • maxage [숫자] : log파일이 30일 이상 되면 μ‚­μ œ

    • ex) maxage 30

  • size : μ§€μ •λœ μš©λŸ‰λ³΄λ‹€ 클 경우 rotate μ‹€ν–‰

    • ex)γ€€size +100k

  • create [κΆŒν•œ] [μœ μ €] [κ·Έλ£Ή] : rotate λ˜λŠ” 둜그파일 κΆŒν•œ 지정

    • ex) create 644 root root

  • notifempty : 둜그 λ‚΄μš©μ΄ μ—†μœΌλ©΄ rotate ν•˜μ§€ μ•ŠμŒ

  • ifempty : 둜그 λ‚΄μš©μ΄ 없어도 rotate 진행

  • monthly(μ›” λ‹¨μœ„) , weekly(μ£Ό λ‹¨μœ„) , daily(일 λ‹¨μœ„) rotate 진행

  • compress : rotate λ˜λŠ” log file gzip μ••μΆ•

  • nocompress : rotate λ˜λŠ” 둜그파일 gzip μ••μΆ• X

  • missingok : 둜그 파일이 λ°œκ²¬λ˜μ§€ μ•Šμ€ 경우 μ—λŸ¬μ²˜λ¦¬ ν•˜μ§€ μ•ŠμŒ

  • dateext : λ°±μ—… 파일의 이름에 λ‚ μ§œκ°€ 듀어가도둝 함

Last updated