我尝试在我的rake任务中运行system "./do_backup.py"
,其中do_backup.py是同一目录中的python程序,但该命令无提示失败。不过,我可以使用system "./do_backup.py"
运行它。
我在rake任务和IRB中都调用了system "whoami"
,用户是相同的。
修改
这是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
答案 0 :(得分: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}"