零細システムエンジニアの備忘録

RPA、サーバ、ネットワークに関する設定メモ、導入相談もコメント欄やメールに頂ければお答えしますのでお気軽にご相談下さい(^^)

シェルスクリプトでUnixタイムを求めるには

Linuxを扱っているとunixタイムによく出くわします。

私が前月分のログ集計のために1日から末日までのログをDBを取得するのに

時間がUNIXタイムになっているため、シェルスクリプトを作成しました。

 

■やりたいこと

前月分の1日から末日までのUNIXタイムを求める

 

#先月の日付を取得

this_month=`date +'%Y-%m-01'`   # 例)2020-01-01

last_month=`date -d "${this_month} 1 month ago" +'%Y-%m'` # 例)2019-12

 

#年、月の分解

year=`echo $last_month | awk -F- '{print $1}'`
month=`echo $last_month | awk -F- '{print $2}'`
echo $year
echo $month

 

#UNIXタイム返還

unix_time_start=`date -d "$year/$month/1 00:00:00" +'%s'`
unix_time_end=`date -d "$year/$month/$day 23:59:59" +'%s'`

 

上記で取得したものをSQL

SELECT value FROM history_uint where clock between 1577804400 and 1580482799;

※こちらはZabbix(監視ソフト)のDBアイテムからclock(UNIXタイム)の範囲で値を取得した例