cronを利用してpythonアプリを定期実行したい
定期実行する際に今日の日付をパラメータとして指定したい
と思い、調べてみました。
自分の備忘録として記しておきます。
各コマンドはcrontabへ設定する前にechoコマンドで実行を確認しています。
echo `date +\%Y-\%m-\%d`
実行環境
OS: Raspbian GNU/Linux 11 (bullseye)
日付の取得
date
# 2023年 9月 15日 金曜日 09:12:34
このままだと使えないのでフォーマットする必要がある
日付文字列をフォーマットする
date +\%Y-\%m-\%d
#2023-09-15
# cronでは%をエスケープする必要があるためバックスラッシュをつける
時刻などもほしい場合
date +\%Y-\%m-\%d--\%H:\%M:\%S
# 2023-09-15--09:12:34
# 日(%d)と時間(%H)の間にスペースいれるとエラーになるのでなにかしらの記号がいるっぽい
前日を指定したいとき
date --date '1 day ago' +\%Y-\%m-\%d
# 2023-09-14
#2日前の場合
date --date '2 day ago' +\%Y-\%m-\%d
# 2023-09-13
次の日を指定したいとき
date --date tommorow +\%y-\%m-\%d
# 2023-09-16
# または
date --date '1 day' +\%y-\%m-\%d
# 2023-09-16
# 「'2 day'」または「'1 day tomorrow'」とすると2日後となります
月単位での指定をしたいとき
# 前月
date --date '1 month ago' +\%Y-\%m-\%d
# 2023-08-15
# 翌月
date --date '1 month' +\%Y-\%m-\%d
# 2023-10-15
年単位での指定をしたいとき
# 昨年
date --date '1 year ago' +\%Y-\%m-\%d
# 2022-09-15
# 来年
date --date '1 year' +\%Y-\%m-\%d
# 2024-09-15
さいごに
上記は自分用に調査して記していますが、他にも同じように困っている方の助けに少しでもなればと思ってます。
もし記載方法に誤りなどがあった場合はコメントいただければと思いますので、よろしくお願いいたします。