スケジュールされた方法でいくつかのrubyスクリプトを実行するスクリプトを作成しようとしています。本番環境:ユーザーの権限が制限されたdebianを実行しているエンタープライズのクラスター。そのため、cronテーブルファイルを編集する権限がありません。Ruby Gemはいつでも使用できますか?ルビー1.9.1ご回答ありがとうございます。
2 に答える
gemwhenever
は、を使用しcrontab [CRONTAB FILE]
てcrontabを記述します。別のユーザーのcrontabをセットアップするように構成されている場合は、を使用しますcrontab -u [USER] [CRONTAB FILE]
。次のlib/whenever / command_line.rbからの抜粋は、コマンドがどのように生成されるかを示しています。
def write_crontab(contents)
…
command = ['crontab']
command << "-u #{@options[:user]}" if @options[:user]
command << tmp_cron_file
…
end
したがって、コマンドを実行するユーザーアカウントがwhenever
上記のコマンドを実行できない場合、期待どおりに機能する方法はないと確信しwhenever
ています。
ユーザーオプションは次のように指定できますwhenever --user someone
。
crontabから実行するスクリプトは、動作するために一部のユーザーとして実行する必要があります。そのユーザーとしてスクリプトを実行する権限がある場合は、rootのcrontabではなく、そのユーザーのcrontabにもアクセスできる必要があります。それがある限り、いつでもgemを使用して、そのユーザーのcrontabのcronジョブを作成および編集できるはずです。
この制限が設定されていない場合は、他のユーザーのcrontabを介してスクリプトを実行するだけで、root権限を取得できます。もちろん、それが可能になることは望ましくありません。