0

スケジュールされた方法でいくつかのrubyスクリプトを実行するスクリプトを作成しようとしています。本番環境:ユーザーの権限が制限されたdebianを実行しているエンタープライズのクラスター。そのため、cronテーブルファイルを編集する権限がありません。Ruby Gemはいつでも使用できますか?ルビー1.9.1ご回答ありがとうございます。

4

2 に答える 2

3

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

于 2012-11-06T16:14:31.407 に答える
1

crontabから実行するスクリプトは、動作するために一部のユーザーとして実行する必要があります。そのユーザーとしてスクリプトを実行する権限がある場合は、rootのcrontabではなく、そのユーザーのcrontabにもアクセスできる必要があります。それがある限り、いつでもgemを使用して、そのユーザーのcrontabのcronジョブを作成および編集できるはずです。

この制限が設定されていない場合は、他のユーザーのcrontabを介してスクリプトを実行するだけで、root権限を取得できます。もちろん、それが可能になることは望ましくありません。

于 2012-11-06T16:27:27.067 に答える