数日おきに設定したcronの実行が1日ずれる理由
数日おきに実行されるcronを設定すると、実行されると思っていた日の翌日にcronが実行されるといったことがあります。
実行日が1日ずれる理由を説明していきます。
まずcronの書き方は次のようになります。
分 時 日 月 曜日 実行するコマンド
毎月20日の23:45に実行する場合は次のようになります。
45 23 20 * * sh example.sh
数分おきに実行する場合は/と実行する間隔を指定します。
5分おきなら次のようになります。
*/5 * * * * sh example.sh
この場合、0分、5分、10分、15分、20分、、の実行です。
1分ずらしたい場合は範囲を指定します。
1-59/5 * * * * sh example.sh
この場合、1分、6分、11分、16分、21分、、の実行です。
数日おきに実行するcron、例えば5日おきだとすると次のような書き方になります。
* * */5 * * sh example.sh
このときcronが実行されるのは1日、6日、11日、16日、21日、、となります。
5で割り切れる日ではありません。
なぜ1日ずれるかというと、この*は1-31を表しているため、「1日から開始して5日おき」となるからです。
* * */5 * * sh example.sh は * * 1-31/5 * * sh example.sh と同じ
関連記事
- SSHで初めて接続するホストで、接続するかどうかyes/noを聞かれないようにする
- さくらサーバ(さくらのレンタルサーバ)でcronを使ってPHPを定時実行する
- シェル実行などでSSHキーを読めない場合
- データベースを定時バックアップする方法(毎日バックアップする処理)
- cron実行時の標準出力のメールを飛ばさない方法(cron実行時に毎回メールを飛ばさない)
- cron実行時のPATHなどの環境変数を確認する方法
- cronのメール送信先を指定する方法(cronごとに送信先のメールアドレスを指定する方法)
- cron実行時に『/bin/sh: 〜〜: command not found』と出てcronが実行されない場合
- 『crontab -r』でcronの設定を間違って消してしまった場合の対処法
- cronを実行すると『TERM environment variable not set.』というエラーメールが飛ぶ
- Linux [Red Hat/CentOSなど]
- サーバー
- Raspberry Piの各モデルスペック比較
- /dev/random と /dev/urandom の違い
- VMware Serverのファイル・サービス
- Rubyのインストール
- php.ini [PHP設定ファイル]のデフォルト
- HPのパソコンでVirtualBoxが起動しない(HP ProtectTools Security Manager)
- Linuxでストレージの型番やシリアルを確認する方法(HDD SSD NVMe)
- Logitec HDDケース(HDD4台用) ガチャベイ LHR-4BNHEU3 LGB-4BNHEU3
- PEARを更新する方法
- PostgreSQLでSCRAM authentication requires libpq version 10 or aboveと出るとき
- VirtualBox、仮想OSのインストール
- ディレクトリ以下のファイル数、ファイル容量を調べる
- サーバの負荷や使用率などを見るコマンドの一覧
- Linuxでホスト名を変更する方法
- proftpd.conf [Proftpd設定ファイル]のデフォルト
- ディレクトリの削除
- Amazon Linux2をローカルのVirtualBoxで起動する方法
- locateデータベースの更新
- 破損したストレージからのデータ復旧
- CentOS7からCentOS8へのアップグレード
スポンサーリンク