Read it later.

Web製作に関するサーバ構成やコーディングネタの備忘録として使ってます。

*

logrotate

   

■logrotateを直接実行

/usr/sbin/logrotate /etc/logrotate.conf

■参考URL
Stray Penguin – Linux Memo (logrotate)
logrotateスクリプトの調査 | ITログ

■/etc/logrotate.d/httpd サンプル

#   daily           # 毎日実行
#   missingok       # ログファイルが存在しなくてもエラーを出さない
#   notifempty      # ログファイルが空ならローテーションしない
#   sharedscripts   # ローテーションの条件に合致するログが複数あった場合に、prerotate, postrotate のスクリプトを一度だけ実行する
#   delaycompress   # 圧縮処理を、その次のローテーションの時まで遅らせる。
#   postrotate      # postrotateとendscriptの間に記述されたコマンドをログローテーション後に実行する
#       /sbin/service httpd reload > /dev/null 2>/dev/null || true
#   endscript

/var/log/httpd/*log {
    daily
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
}

/home/*/webroot*/logs/*log {
    daily
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
}

■ディレクティブ一覧

# # で始まる行はコメントとして無視される
create [mode] [owner] [group] ローテーションを (下記の postrotate も) 行った後、代わりに空の新規ログファイルを作って置いてくる。その属性も指定できる。mode は 0755 のようなオクテット書式。指定しない属性については元のファイルの属性が引き継がれる
nocreate 上記をグローバルな設定にした場合に、個別規定内で create を無効にしたい際に使用
copy/nocopy 元のログファイルはそのままにして、そのコピーを保存する
copytruncate/nocopytruncate copy の動作を行った後、元のログファイルの内容 を消去する。見かけ的には create と同じ結果となる。これはログファイルをリロードする術のないプログラムへの対処法のひとつ。例えば Oracle 10g R1/R2 の alert ログに対しては、これをやらないと以前のファイル (例えば alert_xx.log.1) にログが吐き続けられる (Oracleのバージョンによって異なる気配あり)
rotate num 世代ローテーションのステップ数。例えば元のログファイルが a.log だとして、 num を 2 にしておくと a.log => a.log.1 => a.log.2 => 廃棄 となる。0 だと a.log => 廃棄
start num 初代ローテーションファイルの末尾に付加するナンバー。デフォルトは 1。 num を例えば 5 にすると、a.log => a.log.5 => a.log.6 => … と推移
extension ext ローテーションした旧ログファイルに拡張子 ext を付ける。ドットも必要。例えば some.log を “extension .bak” の設定でローテーションすると、初代ローテーションログは some.log.1.bak となる。圧縮も行う場合、圧縮による拡張子はさらにその後ろに付く
compress/nocompress ローテーションした後の旧ファイルに圧縮を掛ける。デフォルトは nocompress
compresscmd cmd ログファイルの圧縮に使用するプログラムを指定。デフォルトは gzip
uncompresscmd cmd ログファイルの解凍に使用するプログラムを指定。デフォルトは gunzip
compressoptions opt 圧縮プログラムへ渡すオプション。デフォルトは gzip に渡す “-9” (圧縮率最大)。現在のところ “-9 -s” のようにスペース入りで複数のオプションを指定することは不可能
compressext ext 圧縮後のファイルに付ける拡張子 (ドットも必要)。デフォルトでは、使用する圧縮コマンドに応じたものが付くとされているが、bzip2 を使っても gz になってしまうなど、あまり当てにならない
delaycompress/nodelaycompress 圧縮処理を、その次のローテーションの時まで遅らせる。compress も指定しないと無意味
olddir dir ローテーションした旧ログを dir に移動する。移動先は元と同じデバイス上でなければならない。元のログに対する相対指定も有効
noolddir 上記の否定
mail address 旧ログファイルを address に送信する。どの段階のものを送るかは maillast などのオプションで決まる
nomail 上記の否定
maillast mail に関するオプション。最終世代を経て破棄されるログをメールする (デフォルト)
mailfirst mail に関するオプション。初代ローテーションログをメールする
daily/weekly/monthly ログローテーションを日毎/週毎/月毎に行う。デフォルトは daily。例えば weekly なら、毎日実行を掛けたとしても、その週で最初に必要条件を満たした際にだけローテーションが行われる
size num[K/M] ログのサイズが num バイトを超えていればローテーションを行う。この条件は daily, weekly などの条件より優先される。キロ/メガバイトでの指定も可能
ifempty 元のログファイルが空でもローテーションを行う (デフォルト)
notifempty 元のログファイルが空ならばローテーションしない
missingok 指定のログファイルが実在しなかったとしてもエラーを出さずに処理続行
nomissingok 指定のログファイルが実在しなければエラーを出力 (デフォルト)
firstaction
script
endscript
実際にローテーションの条件に合致するログファイルがひとつでもあった場合に、ローテーションを行う前 (prerotate のアクションよりも前) に一度だけ実行するスクリプト。個別定義内でのみ指定可能
prerotate
script
endscript
実際にローテーションの条件に合致するログファイルがひとつでもあった場合に、ローテーションの前に (firstaction よりは後) に実行するスクリプト。個別定義内でのみ指定可能
postrotate
script
endscript
実際にローテーションが行われた後 (lastaction よりは前) に実行するスクリプト。個別指定内でのみ指定可能
lastaction
script
endscript
実際にローテーションが行われた後 (postrotate よりも後) に一度だけ実行するスクリプト。個別指定内でのみ指定可能
nosharedscripts ローテーションの条件に合致するログが複数あった場合に、prerotate, postrotate のスクリプトを各ログファイル毎に実行する (デフォルト)
sharedscripts ローテーションの条件に合致するログが複数あった場合に、prerotate, postrotate のスクリプトを一度だけ実行する
include file_or_dir 設定ファイル内でこの記述のある位置に別の設定ファイルを読み込む。ディレクトリを指定した場合、その dir 内から、ディレクトリおよび名前付きパイプ以外のレギュラーファイルがアルファベット順に読み込まれる
tabooext [+] ext[,ext,…] include でディレクトリを指定した場合に読み込みから除外するファイルの拡張子を指定。デフォルトで .rpmorig, .rpmsave, .rpmnew, .v, .swp, ~ が設定されている。+ を挟むと追加指定、挟まないと根こそぎ置き換えとなる

 - CentOS

Message

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

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

  関連記事

centos
ログイン履歴の確認

ログイン履歴の照会をするには、「last」コマンドを用いる。 ログイン日時の降順 …

centos
メモリ搭載量などを調べる

メモリ搭載量などを調べる 下記は出力例。#以降は、項目説明。 また、メモリに関し …

centos
GeoIPのインストール

IPアドレスから国や都市を取得するためのライブラリが、MaxMind社のGeoI …

centos
ext2でのサブディレクトリの配置上限数

やってきたメールをローカルに、サブディレクトリを作成して保存していたら、どう考え …

centos
[CentOS]yumが失敗する(db3 エラー) – Thread died in Berkeley DB library

yumが実行できなくなった! yumコマンドがうまく動かない環境に遭遇した。 解 …

centos
qmailの転送設定

正確にはvpopmail用の設定らしい。 ○○○-△△△@hogehoge.co …

centos
リッスン状態にあるポートについて調査する。

下記は、出力結果のサンプル。

centos
CentOS系コマンド覚書

※自分がよく使うもので忘れやすいものを書いてるだけなので、これといってすごいもの …

.htaccess
.htaccessで、IPによるアクセス制限をかけたら、「Apache 2 Test Page」が表示される。

IPによるアクセス制限をかけたら、 「Apache 2 Test Page po …

centos
qmailの設定ファイル

qmailをつい最近インストールしたのだけど、 下記の5つの設定ファイルが、最低 …