会社からの帰路ぐらいは歩こうと思い、昨日は青山一丁目から国道246→外苑西通り→ホープ軒横の一方通行の道→代々木駅前→初台なんていうコースで帰宅。 今日の帰りは渋谷経由で帰る浜野くんが一緒だったので新橋から銀座線で外苑前まで行って、昨日と同じコース。 千駄ヶ谷あたりってちょっとしたお酒飲める店が多いのですが、こっちは運動すること目的なのでソソクサと歩いて帰ります。
先月・先々月と、体調不良で会社休んだり連休あったり定期券落としたりして定期券買っても元取れない状態だったので、なんだか定期券買う気にならないので、いまのところ定期券買わずにいます。 帰りのコースは定期券に縛られることがないので、いろいろなコースで帰ってみようかと。
dbm とかのファイルを生成して配布するスクリプトなんぞをよく書くわけなのですが、配布するときに downtime をなくすためにこんな小細工をしている。
で、こんな処理をするためのスクリプトを、案件やシステムの目的が違えどもショッチュウ書いているわけでして。(現在なんか同様なスクリプトを2つの目的で書いていたり。) 同じような処理ばっかりになっているので、そろそろこの辺をライブラリ化しようかなと思ったりしているわけです。
ssh やら scp するときには、普通に system() とか使っているのですが、もうちょっとかっこよくできないかなと思って CPAN あたってみたところ、Net::SSH や Net::SCP なんていうものがあるのですね。 これ使えば下のように system() に引数をダラダラと書かなくってよくなるのかもと。
$ret = system("/usr/bin/scp -options -q hoge@host localdir/");
今日なんか、remote machine の特定のファイルが存在するかどうかをチェックするために、こんな ssh のコマンド書いていたしなぁ。
#!/bin/sh
if ssh hoge@host test -f /home/hoge/fuga ; then
echo "Found"
else
echo "Not found"
fi
今のところ remote にある数個のファイルを test する程度で終わっているので特に問題ないのだが。 sshやSSLの場合、暗号通信の関係で接続時のキー交換を行うハンドシェイク部での処理量が多いため、sshのコマンドを発行する回数が多いとそれなりに処理時間が長くなってしまう。 これが数千個のファイルのチェックとかになると、shell script そのものを ssh で remote に流し込まないとダメなのかなぁ。 となると、ssh hoge@fuga sh -e '....' みたいなものをがんばって書くのか。。。 なんとなく Remote Procedure Call の Procedure を手軽に流し込める機能が欲しくなってきたぞ。