2004-05-18 (Tuesday) [長年日記]
■ 今日から比較的余裕のある日程になりそうです.
とか,油断していたら,明け方5時に就寝,8時に家を出て,25時帰宅になってしまった.何時間寝れた,とかあまり考えたくないッス.(ぶ
■ A -> B -> C
今日の明け方,風呂に入る前にこの記事を読んで風呂の中で考えてみました.
直接ツッコミを入れようと思いましたが,長くなりそうなのでこちらに書いてみました.(気づいてもらえませんでしたら,ポインタだけ示しにツッコミを..(死
自分ならこうするかな的スクリプト.
- exec_at_a.sh(Aで実行するファイル)
-
#! /bin/sh EXEC_FILE=exec_at_b.rb EXEC_CMD=`sed -ne '1s/^#!\w*\(.*\)\w*$/\1/p' $EXEC_FILE` cat $EXEC_FILE | ssh address.to.b "$EXEC_CMD"
- exec_at_b.rb(Bで実行させたいファイル)
#! /usr/bin/env ruby -Ke # ...(Cへtelnetするスクリプトとか.)
■ これでBにファイルを置かなくても大丈夫な予感.
しかし,telnetしか使えない条件でしたら,使えませんね.rshが使えれば大丈夫ですが...
それにssh-agentを使わないのであれば,パスワードを入力する必要が...orz
■ A -> B -> C (Ruby)
というわけで,懲りずにまたやってみました.今度のスクリプトはRubyですね.
こういった小さめのものを作ってると,いかにも*nixいじってる感じがして心地よいです.(ダメ
- exec_at_a.rb(Aで実行するファイル)
-
#! /usr/bin/env ruby require 'net/telnet' file = File.open("exec_at_b.rb") src = file.read file.close telnet = Net::Telnet.new("Host" => "address.to.b") telnet.login("username", "passwd") telnet.puts("cat | ruby") telnet.puts(src) telnet.cmd("^D"){|c| print c} telnet.cmd("exit") telnet.close - exec_at_b.rb(Bで実行させたいファイル)
#! /usr/bin/env ruby -Ke # ...(Cへtelnetするスクリプトとか.)
■ 勝手ながら,ホストBにファイルを置かない,ということを目標にしてしまいました.(ぉ
"^D"はEmacsだったらC-q C-dで,viでしたら,C-v C-dで入力できるEOFです.
方法論としては,上のやつとほとんど同じです.(ぶ
むーん.ローカルの標準出力にtelnet.putsした内容が出てしまうのがちょっと気になる...
しかも,一般的というより,マニアックな感じがしてきたゾ...すみません.
[ツッコミを入れる]
[]
本日のPingbacks(全0件)








