開始日から今日までの間に1日が何回やって来たかをカウントするシェルスクリプト

例えば毎月1日にバックアップ処理を実施して、毎日のcronの中でそのバックアップが正常に世代管理されているかをチェックするケースがあるかと思います。

例えば月次のバックアップが3世代分取られているかをチェックする際に、開始日から3ヶ月以上経過すれば3世代のチェックをすればいいですが、それまでの間は3世代まで行かないので、せめて開始日から1日が何回やって来たかをチェックして、その世代分のチェックを行う必要が出てきます。

開始日から今日までの間に1日が何回やって来たかをシェルスクリプトでカウントするには以下のようにします。

#!/bin/sh

START_DAY="2014-08-15"
TODAY=`date +%Y-%m-%d`

START_YM=`date -d"$START_DAY" +%Y%m`
TODAY_YM=`date -d"$TODAY" +%Y%m`

DIFF_YM=`expr $TODAY_YM - $START_YM`
echo "$DIFF_YM"