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 コマンドで相対日付で目的の日をパパっと計算する。 - それマグで!