0

system "./do_backup.py"rakeタスク内で実行しようとしました。do_backup.pyは同じディレクトリ内のPythonプログラムですが、コマンドはサイレントに失敗します。system "./do_backup.py"ただし、を使用して実行できます。

system "whoami"rakeタスクとIRBの両方から電話をかけましたが、ユーザーは同じです。

編集

rakefileは次のとおりです。

desc "Back up a file onto S3"
task :backup do
     S3ID = "AKIAJM3NRWxxx"
     S3KEY = "0A5kuzV+E1dkaPjxxx"
     SRCBUCKET = "rose-test-4"
     NUM_BACKUP_BUCKETS = 2

     system "whoami" 
     system "./do_backup.py #{S3ID} #{S3KEY} #{SRCBUCKET} #{NUM_BACKUP_BUCKETS}"
end
4

1 に答える 1

2

コメントで説明されているように、これは間違ったディレクトリから実行されていました。ディレクトリは。で変更できますDir.chdir()。例えば:

  ...
  Dir.chdir("lib/tasks")
  system "./do_backup.py #{S3ID} #{S3KEY} #{SRCBUCKET} #{NUM_BACKUP_BUCKETS}"
end

もちろん、@ muistooshortが指摘しているように、より簡単なのは、現在の場所から実行することです。

  system "#{Rails.root}/lib/tasks/do_backup.py #{S3ID} #{S3KEY} #{SRCBUCKET} #{NUM_BACKUP_BUCKETS}"
于 2012-07-28T02:26:58.290 に答える