[Linux][date] dateコマンドを使ってcron形式で現在時刻を取得

  • 1
    Like
  • 0
    Comment

cronとかJenkins向けに設定する際に、デバッグ用の時間を簡単に取得したかったため、dateからcron形式に変換する方法を調べたメモ

現在時刻を取得

実行例
$ date +"%M %k %d %m *"
33 16 25 06 *
フォーマット記法 概要
%k 時 ( 0~23)
%M 分 (00~59)
%d 日 (01~31)
%m 月 (01~12)
%u 週の何日目かを表す値 (1..7); 1 が月曜日
%w 週の何日目かを表す値 (0..6); 0 を日曜日とする

cronは日曜日は0でも7でも良いらしいので曜日を指定する場合はどちらでも良い
ただし、日付と曜日を同時に指定するとXX日と毎週◯曜日の両方で動作するようになるため、同時指定はしないようにする。

第25回 cron周りのベストプラクティス(1):Perl Hackers Hub|gihyo.jp … 技術評論社

2分後の値を取得

デバッグでよくある2分後に設定する例

2分後の時刻を取得

2分後の値を取得
$ date --date '2 minutes' +"%M %k %d %m *"
44 16 25 06 1

2分後に実行するcronジョブを設定する例

実行例
$ date --date '2 minutes' +'%M %k %d %m * echo $(date) > /tmp/hoge.log' | crontab -
$ crontab -l
15 17 25 06 1 echo $(date) > /tmp/hoge.log

参考

Linuxコマンド集 - 【 date 】 日付や時刻を表示,設定する:ITpro
dateコマンドで時刻計算(ネタ) - Librabuch
date コマンドで相対日付で目的の日をパパっと計算する。 - それマグで!