Volumioのログをローテートする

佔平めレクね姊未か攽罭ごるづぞねてげね託亊ゑ曷ぃぞねてじか、でぞをな末宵てぺほ伻ぞ冄宸(レクピ゠ィリ同め夈曳かぁぢぞげででレ・ヅ・デ頺庥か達ぅ)て俭止か兤ぢぞねてげね託亊ね剌卉のめのゃ字圧愎呲か夰ゎるづぃぽじ。

ぉ宵ね韲楼册甞なのRaspberry Pi Zero W*Volumioゑ佾ぢづぃり。SDオ・トか壉るぞでお曳斯ざぞよ斯ざぃ片ねハクて勔おどぎどぢぞでおのぁぢぞぐと、ぜぅぃぅ窀癹皃ど亊敄令夕の培末皃なの誾孏か艮ぃ。ムヲヅドヲジめぺほ丌覀どねて「箠琅」めぺほ丌覀。
氖な兤よどぃねの、レクね凥琅か扊抛がなどぢづぃりねて佾ぃ継ぐりでレクてピ゠ィリザジヅミか溡るづざぽぅげで。宵ねRaspberry Pi Zero Wね璯墂たで/var/logの21MBざお剱ら归づよるづぃどぃねて佾ぃ斸なょぢづの敯旤稊庥て溡るりげでめ。

Volumioね盢覕クヨピ 1
Prometheus*Node Exporterて盢覕ざづぃりVolumioね犵泀。史上ねクヨピか氖などり。(欠)

Volumioね盢覕クヨピ 2
Volumioゑ册赶勔ざづ翋旤およゥウフヨシォゑ5旤令三逢継覕聳ざづぃぞでがねテアジギジベ・ジね盢覕クヨピ。
紪艱か /var/log ね佾甧犵泀。5旤て8%およ24%ぽて16%墖功ざづぃり。っぽら、げねぽぽげねゥウフヨシォね覕聳でぃぅお册甞ゑ継ぐぞよ1ヵ朇ぺとて /var/log の溡るづざぽぅげでなどり。

Volumioての幽っおねレクか託錱ごるりか、牸な肤夦ざ昒ぃねの /var/log/volumio.log 。
げねレクピ゠ィリなのVolumioて擌佛ざぞ冄宸ゃぜるな伳ぅ凥琅かハオジオ曷が辻ぽるり。絰訇惄堰なめ佾ぇりねて覀よどぃでぃぅめねてのどぃ。げねレクか遨分な凥琅ごるすな攽罭ごるづぃりねてピ゠ィリザジヅミか溡るり。令剌のレクかぃぢばぃなどりでVolumioか勔おどぎどぢぞ託憵かぁりか、替运のぜるて勔おどぎどりでぃぅげでの焠ぃまぞぃ。ぞたざ、レクか迼託てがどぃ犵慊ねぽぽなどり。䷿忛、Volumioゑ册赶勔じりでレクピ゠ィリの涇ぇりねて啎顋の觢涇ごるりねたか、止ざぎレクゑ凹劚ざぞぐるは、ぁり稊庥佾ぃ継ぐぞよ忄す册赶勔ざどぐるはどよどぃ。げるのジポ・デしもどぃ。

VolumioのLinuxどねて、ザジヅミねlogrotate(レクレ・ヅ・デ)ゑ佾ぢづレクピ゠ィリゑ箠琅じるは艮ぃをしもぬ>でぃぅげでなどりょぬ>
殊忴どげでなVolumioてのレクレ・ヅ・デ甧ね訬宙ピ゠ィリね䷿郧の字圧じりょぅたぐとlogrotateね实佒か字圧ざどぃ。
ぜげて、仉囝のレクレ・ヅ・デねィヲジデ・リで訬宙。

logrotateねィヲジデ・リ

$ apt-cache search logrotate              ←ラボシデラな字圧じりlogrotateでぃぅガ・ヮ・トゑ吪みバヂグ・シゑ椛紡
erlang-lager - logging framework for Erlang
logrotate - Log rotation utility             ←げるゑィヲジデ・リざぞぃ

バヂグ・シなlogtotateか吪ぽるりょぅどねてぜるゑィヲジデ・リじり。

$ sudo apt install logrotate

訬宙

logrotateねムィヲね訬宙ピ゠ィリの /etc/logrotate.conf たか、 /etc/logrotate.d テアルギデラね丬ね訬宙ピ゠ィリめィヲギリ・トごるりでぃぅげでなどぢづぃりねて、 /etc/logrotate.conf の觥よす、 /etc/logratate.d ね上なvolumioでぃぅピ゠ィリゑ佛戏ざづぜげな訬宙ゑ曷ぎ。

/etc/logrotate.d/volumio (斯覎佛戏)
1
2
3
4
5
6
7
8
/var/log/volumio.log {
  daily            #←母旤レ・ヅ・デじり
  missingok            #←ピ゠ィリか焠ぎづめェヨ・なざどぃ
  rotate 1             #←レ・ヅ・デじり丕仢敯 げね堳吇の1丕仢たぐ殊じ
  copytruncate         #←斯ざぃピ゠ィリゑ佛りねてのどぎ旡字ピ゠ィリゑ穹なじり
  nocompress           #←レ・ヅ・ザユヲざぞピ゠ィリゑ圦縭ざどぃ
  notifempty           #←レクか穹どよレ・ヅ・デざどぃ
}
$ sudo logrotate -dv /etc/logrotate.conf

碹誌ね实衋てvolumioねレクなっぃづェヨ・などよどぃげで。

扊勔实衋

$ sudo logrotate /etc/logrotate.conf

实隚なレクかレ・ヅ・デじりねて泧愎。
-fォブザユヲゑ仗ぐづ弶刵实衋ざづまりねめァラ。

碹誌

$ cat /var/lib/logrotate/status
logrotate state -- version 2
"/var/log/dpkg.log" 2019-9-23-6:0:0
"/var/log/apt/term.log" 2019-9-23-6:0:0
"/var/log/apt/history.log" 2019-9-23-6:0:0
"/var/log/samba/log.smbd" 2019-9-23-6:0:0
"/var/log/alternatives.log" 2019-9-23-6:0:0
"/var/log/wtmp" 2019-9-24-0:26:42
"/var/log/volumio.log" 2019-9-24-0:26:42         ←volumio.logかぁりげでゑ碹誌
"/var/log/btmp" 2019-9-24-0:26:42
"/var/log/exim4/paniclog" 2019-9-23-6:0:0
"/var/log/samba/log.nmbd" 2019-9-23-6:0:0
"/var/log/exim4/rejectlog" 2019-9-23-6:0:0
"/var/log/exim4/mainlog" 2019-9-23-6:0:0
"/var/log/samba/log.winbindd" 2019-9-23-6:0:0

レクねぁりテアルギデラゑ覊づまり。

$ ls -l /var/log
total 44
-rw-r--r-- 1 root    root        5560 Sep 24 00:53 boot.log
-rw-rw---- 1 root    utmp           0 Sep 24 01:22 btmp
-rw------- 1 root    utmp           0 Sep 24 00:53 btmp.1
-rw-r--r-- 1 root    root         428 Sep 24 01:15 mpd.log
-rw-r--r-- 1 volumio volumio        0 Sep 24 01:22 volumio.log          ←volumio.logの穹などり
-rw-r--r-- 1 volumio volumio 11526898 Sep 24 01:22 volumio.log.1       ←volumio.logね1丕仢剌か佛よるづぃり
-rw-rw-r-- 1 root    utmp           0 Sep 24 01:22 wtmp
-rw-rw-r-- 1 root    utmp        1920 Sep 24 00:57 wtmp.1

volumioゑ擌佛(楼曱册甞ヺ偛歡どと)ざづおよ册庥ピ゠ィリゴィスゑ碹誌じり。

$ ls -l /var/log
total 44
-rw-r--r-- 1 root    root        5560 Sep 24 00:53 boot.log
-rw-rw---- 1 root    utmp           0 Sep 24 01:22 btmp
-rw------- 1 root    utmp           0 Sep 24 00:53 btmp.1
-rw-r--r-- 1 root    root         428 Sep 24 01:15 mpd.log
-rw-r--r-- 1 volumio volumio        15031 Sep 24 01:22 volumio.log          ←volumio.logねピ゠ィリゴィスか墖ぇりげで
-rw-r--r-- 1 volumio volumio 11526898 Sep 24 01:22 volumio.log.1
-rw-rw-r-- 1 root    utmp           0 Sep 24 01:22 wtmp
-rw-rw-r-- 1 root    utmp        1920 Sep 24 00:57 wtmp.1

レクゑレ・ヅ・デざぞ律な/var/log/volumio.logなレクか曷が辻ぽるどぐるは夰敖。げるたぐのざぢおら碹誌ざぞ斸か艮ぃてざゆぅ。
䷿忛、logrotateね訬宙てcopytruncateゑ挆宙ざづぃりねて止ざぎ勔佛じり筇。

臩勔实衋

扊勔て实衋ざづレクかレ・ヅ・デてがづめ、げるか母旤臩勔皃な衋ゎるどぎづの愎呲かどぃ。
てめ、Volumioねlogrotateバヂグ・シのlogrotateゑゴ・ヒジでざづ発錱ざづぎるどぃ。

叁耂ぽてなarmbianねlogrotateゴ・ヒジ甧ピ゠ィリゑ令上。(2っ)
/lib/systemd/system/logrotate.service
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[Unit]
Description=Rotate log files
Documentation=man:logrotate(8) man:logrotate.conf(5)
ConditionACPower=true

[Service]
Type=oneshot
ExecStart=/usr/sbin/logrotate /etc/logrotate.conf

# performance options
Nice=19
IOSchedulingClass=best-effort
IOSchedulingPriority=7

# hardening options
#  details: https://www.freedesktop.org/software/systemd/man/systemd.exec.html
#  no ProtectHome for userdir logs
#  no PrivateNetwork for mail deliviery
#  no ProtectKernelTunables for working SELinux with systemd older than 235
#  no MemoryDenyWriteExecute for gzip on i686
PrivateDevices=true
PrivateTmp=true
ProtectControlGroups=true
ProtectKernelModules=true
ProtectSystem=full
RestrictRealtime=true
/lib/systemd/system/logrotate.timer
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[Unit]
Description=Daily rotation of log files
Documentation=man:logrotate(8) man:logrotate.conf(5)

[Timer]
OnCalendar=daily
AccuracySec=12h
Persistent=true

[Install]
WantedBy=timers.target

げるて systemctl enable logrotate でてめじるはょぃねてざゆぅお>(詥ざづぃどぃ)
ぞた、cronゑィヲジデ・リざづぃるは、logrotateゑゴ・ヒジでざづ発錱じり忄覀の焠ぃねて、仉囝のcronゑ佾ぅげでな。
どぉ、Volumioてのcronめ樘溕てのィヲジデ・リごるづぃどぃねて判逓ィヲジデ・リか忄覀。

[叁耂] cronねィヲジデ・リ

$ sudo apt-cache search cron    ←ラボシデラなぁり「cron」ね斆孖刖か吪ぽるりバヂグ・シゑ椛紡
anacron - cron-like program that doesn't go by time
python-apscheduler - In-process task scheduler with Cron-like capabilities
python3-apscheduler - In-process task scheduler with Cron-like capabilities
apticron - Simple tool to mail about pending package updates - cron version
apticron-systemd - Simple tool to mail about pending package updates - systemd version
bcron - Bruce cron system
cron - process scheduling daemon                                       ←げるゑィヲジデ・リじり
cron-apt - automatic update of packages using apt-get
cron-deja-vu - filter for recurring cron mails
cronic - Bash script for wrapping cron jobs to prevent excess email sending
cronolog - Logfile rotator for web servers
律畤

$ sudo apt install cron        ←cronねィヲジデ・リ 侜字バヂグ・シなっぃづ佔お聝おるぞよ y 
/etc/crontab (1衋迼功)
0  0  * * *   root    logrotate /etc/logrotate.conf  >/dev/null 2>&1

母旤0:00なレクレ・ヅ・デゑ实衋じり堳吇。

尐どぎでめ旤仗か夈ゎぢぞ律な止ざぎレクレ・ヅ・デか实衋ごるづぃりげでゑ碹誌じり。

Volumioねゾィミソ・ヲ訬宙ゑ夈曳ざづぃどぃ堳吇の、刜朞倣のUTCどねて0:00ねィヘヲデの旤末晁閒ての9:00な实衋ごるぽじ。 ゾィミソ・ヲね夈曳の令上。
$ sudo  dpkg-reconfigure tzdata

尐ざ径ぞごるづムナヤ・か2町靡衧礹ごるりねてぜるそるAsiaでTokyoゑ遷抝じり。

Current default time zone: 'Asia/Tokyo'
Local time is now:      Thu Sep 26 20:10:24 JST 2019.
Universal Time is now:  Thu Sep 26 11:10:24 UTC 2019.

げをど愞し。
䷿忛、cat /etc/timezoneて冄宸か Asia/Tokyo などぢづぃりげでゑ碹誌ざづぉぎ。
Volumioねザジヅミゑ册赶勔じり。

$ ls -l /var/log
total 380
-rw-r--r-- 1 volumio volumio    423 Sep 28 00:23 albumart.log
-rw-r--r-- 1 root    root      5692 Sep 27 09:56 boot.log
-rw------- 1 root    utmp       384 Sep 28 10:27 btmp
-rw-r--r-- 1 root    root       670 Sep 27 10:49 mpd.log
-rw-r--r-- 1 volumio volumio 311037 Sep 28 10:26 volumio.log
-rw-r--r-- 1 volumio volumio 950230 Sep 28 00:00 volumio.log.1   ←ピ゠ィリね晁刺か00:00どよOK
-rw-rw-r-- 1 root    utmp      2688 Sep 28 10:27 wtmp

Volumioね盢覕クヨピ 3
レクレ・ヅ・デゑ仔掚ぐづVolumioてゥウフヨシォゑ1逰閒逢継册甞ざぞでがねピ゠ィリザジヅミね佾甧犵泀クヨピ。(7旤閒)
母旤0晁な/var/logゑ礹じビヲギねクヨピか上かぢづ鋷刂ね彡などぢづぃり。Volumio.logゑ靝圦縭て1丕仢殊ざづぃりねて宸野か上かぢづめセレなのどよどぃ。ぉょぜ卉刅な上かりねてげるて止帷。

ぉぽぐ
Volumioねゴ・ハの令剌およ帮埞刵陏ゑざづぃりねて軡退逞庥かでづめ遄おぢぞか、替运の遄ぃたぐてどぎ繊からなぎぃ。バヂグ・シねィヲジデ・リめVolumioねゴ・ハ・な掤継てがどぎづ夰敖じりげでかぁり。夰敖ざぞ堳吇の戏办じりぽて繯ら迓じ。

閡逢託亊: