[shell] 2つの日付から経過日数を取得する

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

WEBサービスを運用していると、様々な管理が発生する。

ログデータ集計や、営利サービスだとデータレポートなども発生するはずだ。
また、サーバー管理をしている人は、バッチ処理として色々なデータ保管処理を行わなければならない。

そんな時のスニペットを1つ作ったので、公開しておきます。

2つの日付から経過日を取得

◯日間の処理を行う際に、「対象日から丸日を経過した」という事を認識する為に、経過日数を取得する時に使って欲しい。

ソースコード

dateDiff.sh

使い方

dateDiff.sh [開始日] [終了日]
※日付は[yyyymmdd]で入力してください。

解説

  • shellでのクエリ受け取り値は「$1」「$2」で行えるので非常に楽に扱える。
  • 開始日と終了日は「date -d “日付” +%s」で1900/1/1からの秒数で取得
  • 差分秒数の集計は「expr $TODAY – $FROM」で行う
  • 秒数を日数に変換「expr $DIFF / 60 / 60 / 24」※shellは基本整数のみなので、小数点は切り捨てられる

Leave a Reply

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