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

関連記事

エックスサーバーに Node.js をインストールする

エックスサーバーは、SSH を使ってターミナルエミュレータでログインすることができますが、そのままだと Node.js が使えません。つまり、node コマンド(npm, npx も)が使えません。 …

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

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

レンタルサーバーにおけるデータ転送量とは?

レンタルサーバーの機能やスペックを見ていると「転送量の目安」といった項目を目にすることがあります。 ウェブサイトへのアクセスが少ないうちは、あまり気にする必要はない項目ではあるのですが、できれば、 レ …

FTP でファイルダウンロードがエラーになる

FTP でサーバー上のファイルをダウンロードした時に、エラーが発生して失敗することがあります。 いろいろな原因が考えられますが、その1つはファイル名の長さです。 Windows の場合、ファイル名が …

複数カラムレイアウトのサイトで表の幅を広げられるようにする

目次1. 問題点2. 対策3. コードサンプル4. おわりに 1. 問題点 このサイトは2カラムレイアウトです(少なくても今の時点では)。左カラムには記事が、右カラムにはサイドバーが表示されます。 こ …

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