*

Twitterbotのlogファイルの肥大化を防ぐためのlogrotateの設定

公開日: : サーバ運用, 備忘録 , ,

この記事の所要時間:約5分34秒

abrAsus 保存するメモ帳
abrAsus 保存するメモ帳 / ytoApple信者の毒舌な妹botはcronで定期的にphpを実行することで呟いている。crontabの設定では、以下のように/var/log/twitterbot.logにログを吐き出すようにしている。エラーは通常標準出力に出力されるが、cronの設定で指定したメールアドレスに知らせてくれるようにしてある。

12 6-23 * * * /usr/bin/php /usr/share/php/twitterbot.php 1 >> /var/log/apple_dokuzetsu.log

もちろんこれでログを参照することはできるけど、放おっておくとただファイルが肥大化していく。この肥大化するログファイルをうまいことやってくれるのがlogrotate。定期的にリネームして別ファイルにしてくれたり、古いログファイルを削除してくれたり。

logrotateの仕組みや設定ファイル

logrotateはLinuxなら通常はデフォルトでインストールされている・・・と思う。httpdyumなんかもデフォルトでlogrotateの恩恵を受けられるようになっている。

/etc/logrotate.confが全体の設定スクリプト。私のは以下のようになっていた。

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
	minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

コメントを読めばだいたい分かる。念のため、rotate 4というのは4世代を保存しておくという意味で、具体的にはtwitterbot.logtwitterbot.log.1twitterbot.log.2、…のように世代が変わっていく。

21行目の/var/log/wtmp内と28行目の/var/log/btmp内は、それぞれwtmpbtmpというサービスのログファイルの設定。こういうふうに指定すると、サービスごとに上に記したグローバルな設定を書き換えられる。

18行目のinclude /etc/logrotate.dと書いてあるように、/etc/logrotate.d以下にあるサービスごとの設定ファイルを読み込んでいる。例えば/etc/logrotate.d/yumの内容は以下のようになっていた。

/var/log/yum.log {
    missingok
    notifempty
    size 30k
    yearly
    create 0600 root root
}

missingokでログファイルが存在しなくても処理を続行、notifemptyで元のログファイルが空ならロテートしない、size 30kでログファイルの容量が30kB以上になったらロテートする(weeklyなどより優先)、yearly/etc/logrotate.confに書いてあったweeklyを上書き、createでロテートしたあとに新しい空のログファイルを作成。compressでロテートしたログファイルを.gzで圧縮できたりもするらしい。

/etc/logrotate.d/twitterbot

の内容

以上のような仕組みを踏まえて、以下の様に設定を作成。

/var/log/twitterbot.log {
    missingok
    notifempty
    size 1M
    create 0644 root root
}

まあsizeを念のため1MBにしたぐらいで、特別なことはやっていない。これで動いてくれる・・・・はず! 一週間後を楽しみに待ちましょう。

関連記事

no image

検索エンジンのロボットに対する命令を記述するrobots.txtについてのメモ

Robots... / jeffedoe 毎朝早朝に送られてくるlogwatchからのメールを

記事を読む

Cent OSサーバを起動するたびにいろいろとプロセスがクラッシュする問題

いつからか、Cent OSサーバを再起動するたびに件名が" full clash repor

記事を読む

NVR500にプロバイダの固定IPサービスを設定する手順

ついに私も、固定IPサービスを使うことにしました。ルータへの設定で若干詰まったのでメモ。自鯖

記事を読む

no image

/var/log/clamav/freshclam.logの所有権がなぜか変わってしまう問題

深夜3時ごろに、Cron Daemonからこういうメールが送られてくる。 ERROR: P

記事を読む

no image

rsyncで毎日自動差分バックアップを構成

毎日の明け方に、外付けHDDにrsyncバックアップをするようにした。rsyncを実行するシェルスク

記事を読む

no image

メールでログを届けてくれるlogwatchをインストール

logwatchとは/var/logの内容を1日に一回メールで送ってくれるもの。 これがなかなかけ

記事を読む

最近の自宅サーバ事情

最近一番問題なのが、以前までMac miniの方で起きていた不定期にネットが切断される現象が、サーバ

記事を読む

http://www.centos.org/

Cent OSサーバを1から再構成しなおした。

リストアしちゃいました。 再構成するきっかけになったのは、/パーティションをなんと2GBしかと

記事を読む

ドメインを取得してとりあえず使えるようにする手順

ドメイン名。ウェブページの顔ですね。ちょっとネットワークに詳しい人なら結構意識していると思います。

記事を読む

NVR500のVPN設定にめげるチンパンジー

auのiPhoneから自宅のNVR500にVPN接続は簡単にはできないっぽい

NVR500のVPN設定にめげるチンパンジー[/caption] ここ1週間ぐらい、手持ちの

記事を読む

ブログを移行しました

新しいブログはこちら http://queryok.ikuwow.co

ChefとAnsibleの比較 〜Ansibleはじめました〜

今まで個人のMacの環境構築には、Brewfileなるものを作成してい

no image
モチベ低い大学院生でも院進学で得られたもの

つい今月の頭に修士論文を提出して、長いプレッシャーから解放されました。

Apple Thunderbolt Displayを使って30分で理解した利点3つ

今まで研究室ではMac ProとDellのちゃちな21インチモニタで作

ニコニコ動画の動画上部のニュースを非表示にするSafari機能拡張

作りました。 HideNicoVideoNews http:/

→もっと見る

  • follow us in feedly
PAGE TOP ↑