Digital OceanでRubyコードを実行するcronジョブを作成しようとしている間に間違いを犯したようです。エラーは発生しませんが、何もしません。私のラズベリーパイでこのcronjobを実行しましたが、デジタル海では動作しません。これは私の予定された仕事です。
59 17 * * * ruby /home/workspace/delta/analytics/analyze.rb 7 >> /home/testruby
testrubyファイルを生成しますが、analyze.rb 7は機能しません。 ruby/home/ ....を実行してテストしましたが、うまくいきます。何が問題なのでしょうか?
修正する
エラーファイル: bin/sh: 1: /usr/local/bin/ruby: 見つかりません
これは私がcrontabに書いたものです。
* * * * * /usr/local/bin/ruby /home/workspace/deriva/analytics/analyze.rb 7 >> /home/testruby 2>&1
答え1
さまざまな環境変数、作業ディレクトリ...analyze.rbをデバッグする必要がある正確な場所。
まず、標準エラーではなく標準出力のみをリダイレクトしています。後でエラーが発生する可能性があるため、2>&1
末尾に を追加すると多くの役に立ちます。または、EMAIL=
crontabの上部に設定してメールで受信することもできます。
Rubyスクリプトの冒頭で、Rubyが起動または類似していることを確認し、print "starting!\n"
ログファイルに表示されることを確認できます。