サーバのログを整理するシェルスクリプトで扱うファイル名。
バッチ処理が動くのは日付が変わってからなので、以下のように日付毎にファイル名が異なる場合にどうやってしていするか。
xxxx-2009-01-01.log
単にdateコマンドだけだと、
$ date
Mon Jan 13 12:00:50 JST 2009
となる。
書式をあわせるために
$date ‘+%Y-%m-%d’
2009-01-13
さて、ここからだ。上記で得られたのは今日の日付。昨日は?
date –help や、 info date で調べてみると、-d オプションが使えそうだ。
$date -d ‘yesterday’ ‘+%Y-%m-%d’
2009-01-12
$date -d ’1 days ago’ ‘+%Y-%m-%d’
2009-01-12
できた。
-d ‘yesterday’ は、 -d ’1 days ago’ でも同じ事らしい。ってことで、「明日」を取得する場合は、 -d ‘tomorrow’ や、 -d ’1 days next’でいける。
以下のようにすれば、シェルスクリプト中のファイル名がセットできると。
fname=”xxxx-`date -d ’1 days ago’ ‘+%Y-%m-%d’`.log”
