標準エラー出力を上手く使う。
今までおざなりにしてきた標準出力や標準エラー出力を教えてもらったのでまとめときます。
コマンド > ファイル名 2>&1
表記 | 意味 |
---|---|
> | リダイレクト。1>=標準出力を意味する。 |
&1 | ファイル名 |
2> | 標準エラー出力を意味する。 |
cronで使うときは、crontabに
0 0 * * * sh hoge.sh >> hoge.out 2>&1
こんな感じで追記(>>)していく。
追記だとディスクを圧迫するのでログローテートする必要もある。
logrotate /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 設定ファイルでデバックできるなど実用的な情報が載っていました。