我使用cap調用了很多在一堆服務器上運行命令。我還想用capistrano將一個文件推送到一堆服務器上。如何將文件複製到一堆服務器與capistrano
起初我以爲PUT會這樣做,但是讓你創建文件的數據。我不想這樣做,我只是想將正在運行capistrano命令的機器中的現有文件複製到其他機器。
這將是冷靜,如果我可以做這樣的事情:
host1$ cap HOSTS=f1.foo.com,f2.foo.com,f3.foo.com COPY /tmp/bar.bin
我希望它可以複製主機1:/tmp/bar.bin到f1.foo.com:/tmp/bar.bin和f2.foo.com:/tmp/bar.bin和f3.foo.com:/tmp/bar.bin
這種事情似乎非常有用,所以我肯定有一種方法可以做到這一點...
NB。如果出現錯誤,例如「請指定至少一個文件或目錄更新」,則請調用'top.upload(...)'而不僅僅是'upload(...)'來消除歧義。 ref:http://www.mail-archive.com/[email protected]/msg04699.html – 2011-09-05 05:52:14
如果您使用的是Rails 3,請記住使用'Rails.root'而不是'RAILS_ROOT'。 – Mika 2012-07-05 17:28:00
使用'Rails.root'將不起作用,因爲在運行'cap'時Rails未加載。在這個例子中,你想使用'File.expand_path('../../ CHANGELOG.txt',__FILE __)'。 – 2013-01-18 03:59:57