-->
./
<!-- フラ&#65533;ュが見れな&#65533;のためにここに何か書&#65533; --> フラ&#65533;ュがインス&#65533;&#65533;ルされて&#65533;&#65533;たいで&#65533;&#65533;&#65533;

2010年01月14日

Capistranoのタスクで複数のサーバに同じコマンドを実行

FFTT : Capistranoを参考にしました。

設定ファイル:h-ssh.rb(適当なファイル名です。)
 テストなのでコマンドも適当ですが、dateは現在の日付と時刻の表示、calは今月のカレンダーを表示するコマンドで、いずれも出力をリダイレクトしてファイルを作っています。

u9@u9-vmx:~/2010/rails/kokuhatu % cat h-ssh.rb ←catはファイルの内容を表示するUNIXのコマンドです。
role :hhosts, "hirono-hideki-01@hirono-hideki-01.sakura.ne.jp", "u9@localhost"

task :sakura_hhosts do
   run "cd ~; date > ./sakura.date"
end

set :testname, "hirono"
task :sakura_cal, :roles => :hhosts do
   run "cd ~; cal > ./#{testname}.date;
                echo `which ruby`; echo `pwd`"
end


タスクの実行:
u9@u9-vmx:~/2010/rails/kokuhatu % cap -f h-ssh.rb sakura_cal
  * executing `sakura_cal'
  * executing "cd ~; cal > ./hirono.date;\\\n\t\techo `which ruby`; echo `pwd`"
    servers: ["hirono-hideki-01.sakura.ne.jp", "localhost"]
    [hirono-hideki-01@hirono-hideki-01.sakura.ne.jp] executing command
 ** [out :: hirono-hideki-01@hirono-hideki-01.sakura.ne.jp] /usr/local/bin/ruby
 ** [out :: hirono-hideki-01@hirono-hideki-01.sakura.ne.jp] /home/hirono-hideki-01
    [u9@localhost] executing command
 ** [out :: u9@localhost] /usr/bin/ruby
 ** [out :: u9@localhost] /home/u9
    command finished
u9@u9-vmx:~/2010/rails/kokuhatu %

 サーバにこんな感じでファイルが出来ています。
[sakura ~] % ls hirono.date sakura.date
hirono.date sakura.date
[sakura ~] % cat hirono.date sakura.date catコマンドは複数のファイルをしていすると、連結して表示します。
    January 2010
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Thu Jan 14 19:23:19 JST 2010
[sakura ~] %



Powered by ScribeFire.

posted by hirono at 19:48| Comment(0) | TrackBack(0) | Rails
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/34742177

この記事へのトラックバック