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?

More than 3 years have passed since last update.

【cygwin】cronで実行されないスクリプト

Last updated at Posted at 2020-07-09

タイトルの現象について一応は解決しました。解決したのですが、うまく行かなかった原因も、うまく行った理由もよく分かっていません。
確認したことを簡単にまとめておきます。

スクリプトの内容

  • テキストデータを処理するスクリプト
  • 中間ファイル、実行の様子を確認できるログファイルを書き出す

動かない状況

  • 他のスクリプト(同じものを3個登録)の実行実績がある環境
  • コマンドラインから「./script.sh」だと動く
  • コマンドラインから「/path/to/script.sh」だと動く
  • cronだと動かない
  • 登録当初は「chmod 744」だったのを「755」に変更。
  • コマンドラインでbashのパス補完で確認した「/path/to/script.sh」のコピペもダメ

確認したこと

  • croneventsでは実行した様子がログとして出力されない
  • /var/log/cron.logで見ると「/path/to/script.sh」があることは認識している
    • 起動時に「-x ext,sch,proc,pars,load,misc」を指定しています

解決した方法

  • 最終行にあった「/path/to/script.sh」を先頭行に移動したら動いた

備考

なんで、この方法で動いたのか不明。途中で「chmod 755」に変更したのがポイントで、この変更状況がcronに認識されていなかったのかもしれない。しばらく様子見。

後日談

再現してみようとしたけどうまくいきません。

1.簡単なスクリプトを作成

# !/usr/bin/bash

LOG_FILE=/home/USERNAME/logs/debug_cron.log

date '+%Y/%m/%d %H:%M:%S' 2>&1 >> $LOG_FILE

権限は「chmod 700」にしました。

2. CRONに登録

  • crontab -eでcronに登録
  • croneventsを実行し「RELOAD」の表示を確認

3. そして再現せず…

  • /home/USERNAME/logs/debug_cron.logへの書き込みを確認…
  • croneventsでRELOADを確認できれば実行は確実かもしれない。
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?