0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

crontabで日付付きファイル名を作るときの落とし穴

Last updated at Posted at 2025-12-07

crontabで日付付きファイル名を作るときの落とし穴

私がよくやってしまう、crontabでのミスを紹介します。

ミスの内容

毎回かなりの頻度で間違えるのが、ファイル名に日付を入れる方法です。
例えば、以下のような名前のファイルを作りたいとします。

XXX_<今日の日付>.log

プロンプト上やシェルスクリプトでは、以下のような書き方でOKです。

XXX_$(date +%Y%m%d).log

しかし、crontabではこれをそのまま使うことができません。
なにやら、"date"コマンドの"%"部分がcrontabによって[改行]として読み込まれてしまうようです。
そのため、うまく動きません。

正しい記載方法(crontab内)

シェルスクリプトを使わず、crontabに直接書く場合は、" % "を" \ "でエスケープする必要があります。

XXX_$(date '+\%Y\%m\%d').log

ミスの流れ

私の場合、だいたいこんな流れでミスをします。

プロンプト上でコマンドの確認
→問題なく動く
→そのままcrontabに貼り付け
→cronが実行されない
→ログを確認し、"date"以降読み込まれていないことを確認する

おわりに

プロンプト上で実行できても、crontabでは実行できないことって意外と多いですよね。
今回は「もう2度と間違えないぞ」の思いを込めて書きました。

同じような"あるあるミス"の経験がある方はぜひコメントで教えてください!
この記事が誰かの助けになればうれしいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?