ruby スクリプトを実行する cron ジョブを作成したいと考えています。これは私がcrontabに入れたものです。
2 * * * * ruby /home/mark/project/script.rb >> /home/mark/cronOutput.txt
しかし、実行されていません。cron をルートとして実行すると、環境がロードされることに問題があると思います。
助けてください。
ruby スクリプトを実行する cron ジョブを作成したいと考えています。これは私がcrontabに入れたものです。
2 * * * * ruby /home/mark/project/script.rb >> /home/mark/cronOutput.txt
しかし、実行されていません。cron をルートとして実行すると、環境がロードされることに問題があると思います。
助けてください。
Ruby が非標準パスにある場合、個人的には、Ruby 呼び出しをシェル スクリプトでラップするのが好きです。これにより、Ruby プログラムが必要とするすべてのパスなどが正しく設定され、crontab でスクリプトがスケジュールされます。次のようなことをします
2 * * * * /home/mark/project/ruby_wrapper_sh >> /home/mark/cronOutput.txt 2>&1
/home/mark/project/ruby_wrapper_sh は次のようになります。
#!/bin/bash
. ~mark/.bash_profile
`ruby /home/mark/project/script.rb`
Railsでcronジョブを使用するには、いつでも(https://github.com/javan/whenever )gemを確認してください
彼の解決策について@saihgalaに感謝しますが、私はこのように少し変更されています。#!/usr/bin/env ruby
ruby 実行可能ファイルの先頭に stingを追加 します。
このファイルの権限を追加し、crontab file edit を起動しますcrontab -e
。
追加*/1 * * * 0-5 /path/to/executable.rb>>/path/to/output.txt
すると、うまくいきます。