Tips

エックスサーバーで logrotate を使う

投稿日:

1. はじめに

エックスサーバーで logrotate を使う手順です。

2. logrotate とは?

logrotate は、ログファイルをローテーションするツールです。

例えば、あるディレクトリ直下に 毎日ログファイルを追加作成している場合、放っておくとファイルがどんどん増えていきますが、logrotate を使うと、常に「○日間分のログファイルだけが残る」ように古いログファイルを削除していってくれます。

公式サイト

🔗 GitHub – logrotate/logrotate

3. エックスサーバーで logratote を使う手順

以下の操作はすべて、ターミナルからエックスサーバーにログインして行います (SSH でログイン)。

1. logrotate 関連のファイルを配置するディレクトリを作る

logrotate 関連のファイルを配置するディレクトリを作ります。

どこでもよいのですが、今回は ~/local/logrotate/ とします。

$ mkdir ~/local/logrotate

2. logrotate で使用するファイルを用意する

logrotate で使用するファイルを作っておきます。

(1) logrotate.status ファイルを空で作っておきます。

logrotate を実行した時に、その日時が書き込まれるファイルです(ステータスファイル)。基本的に自分で編集することはありません。
(logrotate を最初に実行した時に自動生成されるかもしれませんが、念の為作っておきます)

$ touch ~/local/logrotate/logrotate.status

(2) logrotate.conf ファイルを作成します。

logrotate の設定ファイルです。どこのログファイルをローテーションするのかなどを記述します。

$ touch ~/local/logrotate/logrotate.conf
  • このファイル内に、include {ディレクトリパス} と記述しておくと、指定したディレクトリ内のファイルも設定ファイルとして認識させることができます。

例として ~/log/ ディレクトリ以下のログファイルをローテーションする場合は、以下のように記述しておきます。

/home/{ユーザー名}/log/* {
  daily
  rotate 2
  missingok
  notifempty
  dateext
  create 700 {ユーザー名} {グループ名}
}

※ 各設定値については、man logrotate.conf コマンドを実行してオンラインマニュアルを確認してください。

3. cron で logrotate を動かす

cron を使って logrotate を1日1回実行させます。

logrotate コマンドは、/sbin/logrotate というパスに最初からインストールされていましたので、これを使用します。

以下のコマンドを実行して cron の設定を記述します。

$ crontab -e

以下を1行で追記します。

30 6 * * * /sbin/logrotate -s /home/{ユーザー名}/local/logrotate/logrotate.status /home/{ユーザー名}/local/logrotate/logrotate.conf

この記述のフォーマットは以下です。

分 時 日 月 曜日 コマンド

今回の例では、毎日 6時30分に実行することになります。

  • {ユーザー名} の部分は自分のユーザー名を指定してください。
  • -s オプションでは、先程作成したステータスファイルを指定しています。

4. まとめ

まとめます。

  1. logrotate コマンドは最初からインストールされているものを使います。
  2. 「ステータスファイル」と「設定ファイル」を作っておき、logrotate コマンドの引数として指定します。
  3. どこにあるログファイルをローテーションするかは、設定ファイルに書いておきます。
  4. cron を使い、logrotate コマンドを定期的に実行します。

-Tips

執筆者:fitallright

関連記事

no image

ロリポップ!マネージドクラウドを使ってみた感想と記録

↑この記事から分かるように、2018年10月1日から12月31日までの間【ロリポップ!マネージドクラウドのご利用料金が全額無料】となります。 ここでは、ロリポップ!マネージドクラウド を使ってみた時の …

.htaccess でのアクセス設定に注意

レンタルサーバーでは、特定のディレクトリに .htaccess ファイルを置き、アクセス制限をかける場合があります。 例えば、以下を記述した .htaccess ファイルを置くと、そのディレクトリ以下 …

WordPress のウィジェット内項目の先頭にアイコンを表示する方法(Font Awesome 5 を利用)

WordPress ではサイドバーなどに ウィジェットを作成することができます。 ウィジェット内の各項目の先頭にアイコンを表示する方法はいろいろあると思いますが、本ページでは Font Awesome …

【VPS, クラウドサーバー】MySQL (MariaDB) が突然停止する場合は、innodb_buffer_pool_size が大きすぎるかもしれません

VPS や クラウドサーバー(OS は Linux)を借りて、MySQL (MariaDB) を使っている場合のお話しです。 目次現象調査my.cnf で innodb_buffer_pool_siz …

CGI と PHP(モジュール版) の違い

レンタルサーバーにおける「CGI」と「PHP(モジュール版)」の違いについて書きます。 目次1. 「CGI」と「PHP(モジュール版)」の共通点2. 両者の違いと「PHP(モジュール版)」の手軽さ1. …

ロリポップ!「スタンダードプラン」
さくらのレンタルサーバ「スタンダードプラン」