ローカル スクリプトによって生成されるログを管理しようとしています。これらのログは、ローカル ファイルにリダイレクトされた stdout と stderr にすぎません。私はルート アクセス権を持っていないため、ローカル構成ファイルを使用してローカル ユーザーとして logrotate を実行しようとすると、次のエラーが発生します。
Ignoring /home/user/customlogfile because the file owner is wrong (should be root).
Handling 0 logs
ローカルユーザーとして logrotate を実行することは可能ですか?
答え1
ローカル スクリプトによって生成されるログを管理しようとしています。これらのログは、ローカル ファイルにリダイレクトされた stdout と stderr にすぎません。
logrotate
だったらそもそも必要ありません。
以下のうち 1 つ以上を入手してください:
- ダン・バーンスタインの
multilog
(からデーモンツール)、 または - ブルース・グエンターの
multilog
(からデーモンツールアンコール)、 または - ローラン・ベルコの
s6-log
(からs6)、 または - ゲリット・パペの
svlogd
(からそれを実行します)、 または - ウェイン・マーシャルの
tinylog
(から犯人)、 または - 私
cyclog
の(から食事)。
そして、通常の方法で、スクリプトの標準出力と標準エラーをパイプを介して標準入力に送信します。
これらは、自動的に循環され、オンデマンドでローテーション可能で、サイズが厳密に制限されたログのセットを、指定したディレクトリに書き込みます。追加のログローテーションプログラムはまったく必要ありません。いずれもスーパーユーザー権限を必要としません。(実際、スーパーユーザー権限を必要としたり期待したりするどころか、それはベストプラクティスです最も広く知られている使用例では、デーモンの出力をログに記録し、権限のないアカウントで実行します。