skillup

技術ブログ

サーバー・ネットワーク

任意のログファイルのログローテションについて

投稿日:

本日は自作のログファイルをうまくローテーションさせる方法について。

自作でログを作っておりますと、日がたつにずれどんどんと容量が膨らんでいきます。

放置するととんでもない量になっていることが多いですね。

一般的にLinuxの場合はログのローテーション(一定期間のログを分割して保存し、ある程度の期間がたったら削除する機能)が働いております。

/var/logの下をみますと  messages-20170205のように日付がはいったログが見られるかと思います。

任意のログファイルをこのように処理する場合の手続きについて書きます。自前のスクリプトを書くという方法ももちろんありますが・・・

設定

例えば/var/log/sample/sample.logというログがはかれているとします。このログをローテーションさせたいとします。1日ごとにログを作り、sample.log-20170223のような日付形式で保存したいとします。

ログのローテションをする際にはまず/etc/logrotate.d/に設定ファイルを作ります。

仮にsample_logという設定ファイルを作るとします。

設定情報は下記を参考に。

http://linux.kororo.jp/cont/server/logrotate.php

http://urashita.com/archives/1525

注意点

ありがたいことにlogrotateにはデバッグ機能があるため、テストをしたり、定期実行を待つのではなくすぐに実行して試すことができます。

設定情報が正しいかどうか

このコマンドでerrorなどのメッセージが出た場合、設定が間違っています。

http://blog.willnet.in/entry/20081001/1222836601

強制実行

通常は1日が終わるまで待たなければいけなかったりするのですが、下記コマンドで強制的に実行できます。こういうテスト機能があるのはすごくありがたいですね・・・

ちなみに一度実行すると実行記録が/var/lib/logrotate.statusに残ります。

ここで本日分がすでに実行されていますと動きません。一度実行したら前日に書き換えてあげましょう。

http://ameblo.jp/itboy/entry-10027962914.html

ログが消える・・

rotate n を設定しないといきなりログファイルが消えます。注意しましょう。

http://changineer.info/server/logging/logrotate.htm

ログローテーションの実行時間については下記リンクで説明されています。

http://qiita.com/kiimiiis/items/b9bc67922fb0baf37a1e

 

-サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

composer経由でのpearライブラリのインストール

2018年7月現在、PHPのライブラリはほとんどComposer経由でインストールできるかと思いますが、稀にComposerに対応していないものもあり、その場合、pearから取得してくる必要があります …

no image

MariaDBインストール

CentOS7からはyumでmysqlをインストールするとMariaDBがディフォルトになるようです。 せっかくなので、これを機にMariaDBを使ってみました。といってもMySQLとほとんど一緒でし …

no image

シェル基礎2

シェルコマンド使い始めて数年たちますが、いまだに知らないことはおおいですし、早く知っとけばよかった的なこともたくさんあります。 そんな小ネタ集を alias よく使うコマンドを別名で登録することができ …

no image

nginxのlocationディレクティブ内のリダイレクト処理について

nginxのlocationディレクリブ内のリダイレクト処理に関して。 結構長い間携わっていますが、適当に理解していた部分が多かったので再度復習です。 特にドメインのサブディレクトリでサービスを運用し …

no image

nginxによる一般的なwebサーバーの構築

今回は一般的なwebサーバーでよく利用するnginxの基本機能を紹介します。 サーバー・インフラ徹底攻略の3章になります。 Contents1 バーチャルホストを利用する1.1 IPアドレスベースのバ …