macOSにlogrotateコマンドを導入する。
[主題]
macOSでHomebrewを使わずに、logrotateコマンドをインストール&運用する手順を説明したい。
[背景]
筆者が参考にしたFail2banのログローテーションには、logrotateコマンドが用いられていた。macOSのログローテーションに書き換えるのも、考え方としてはありだが、面倒くさいので、logrotateコマンドを導入することにした。
これは、その際の手順をまとめた作業記録である。
[環境]
参考までに、筆者の環境を記載しておく
MacBook Pro 2018 15.4inch(インテルMac)
macOS 13.4 Ventura
Xcode 14.3
CommandLine Tools for Xcode 14.3.0.0.1
MacBook Pro 2016 13inch(インテルMac)
mmacOS 12.6.6 Monterey
CommandLine Tools for Xcode 14.2.0.0.1
[インストール手順]
-
poptのインストール
logrotateは、poptに依存しているので、poptをインストールする。curl -LO https://ftp.osuosl.org/pub/rpm/popt/releases/popt-1.x/popt-1.19.tar.gz tar xf popt-1.19.tar.gz cd popt-1.19 ./configure make && sudo make install
-
logrotateのインストール
curl -LO https://github.com/logrotate/logrotate/releases/download/3.21.0/logrotate-3.21.0.tar.xz tar xf logrotate-3.21.0.tar.xz cd logrotate-3.21.0 ./configure \ --with-compress-command=/usr/bin/gzip \ --with-uncompress-command=/usr/bin/gunzip \ --with-state-file-path=/var/lib/logrotate.status make && sudo make install
[運用]
-
logrotateの設定ファイル準備
cd logrotate-3.21.0/examples sudo cp -p logrotate.conf /usr/local/etc/
筆者の場合、以下の修正を加えた。
sudo vim /usr/local/etc/logrotate.conf
--- logrotate-3.21.0/examples/logrotate.conf 2021-04-17 01:32:39.000000000 +0900 +++ /usr/local/etc/logrotate.conf 2023-05-28 01:21:52.000000000 +0900 @@ -12,7 +12,7 @@ create # use date as a suffix of the rotated file -dateext +#dateext # uncomment this if you want your log files compressed #compress
-
ローテーションするログの設定ファイルを置くディレクトリの準備
sudo mkdir -p /etc/logrotate.d
-
logrotateの自動起動設定
cd /Library/LaunchDaemons sudo vim jp.yourName.logrotate.plist
記述する内容
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>jp.yourName.logrotate</string> <key>ProgramArguments</key> <array> <string>/usr/local/sbin/logrotate</string> <string>/usr/local/etc/logrotate.conf</string> </array> <key>Disabled</key> <false/> <key>RunAtLoad</key> <false/> <key>StartCalendarInterval</key> <dict> <key>Minute</key> <integer>0</integer> </dict> </dict> </plist>
-
logrotateの起動。
ただし、本稿ではローテーション対象ログファイルの設定をしていないので、何も起こらない。ローテーションの実施例は、別の投稿に書く。sudo /usr/local/sbin/logrotate -f /usr/local/etc/logrotate.conf
cd /Library/LaunchDaemons/ sudo launchctl load -w jp.yourName.logrotate.plist
参考サイト
以上。
この投稿へのトラックバック
トラックバックはありません。
- トラックバック URL
この投稿へのコメント