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 回答