Learn to Live and Live to Learn

IT(たまにビジネス)に関する記事を読んで、考えて、使ってみたことをまとめる場。

標準エラー出力を上手く使う。

今までおざなりにしてきた標準出力や標準エラー出力を教えてもらったのでまとめときます。

コマンド > ファイル名 2>&1
表記 意味
> リダイレクト。1>=標準出力を意味する。
&1 ファイル名
2> 標準エラー出力を意味する。

cronで使うときは、crontabに

0 0 * * * sh hoge.sh >> hoge.out 2>&1

こんな感じで追記(>>)していく。
追記だとディスクを圧迫するのでログローテートする必要もある。

logrotate /hoge/hoge

/hoge/hoge

hoge.out{
    missingok
    notifempty
    daily
    rotate 7
    compress
    nocreate
}
表記 意味
missingok =missing ok。ファイルがなくてもエラー扱いにしない処理を続行する。
notifempty =not if empty。ログファイルが空の場合ローテートしない。
daily 日単位でログを取る。
rotate ○ 過去のログは○日分保持する。
compress 過去のログを圧縮する。
nocreate ログローテート後に空ファイルを作らない。

参考URL:

ログの扱いを知る -logrotate編- - 技術いろいろ勉強メモ
logrotate -d 設定ファイルでデバックできるなど実用的な情報が載っていました。