数秒で書き終はる鮮度系。
サービスには沢山の種類のサーバーがそれぞれ沢山たってゐ、sshから繋ぎ易いやうに .ssh/config に書いてあったりする。例へば此んなふうに。
Host momonga-web-01 HostName x.x.x.x Host momonga-web-02 HostName x.x.x.x Host momonga-db-01-01 HostName x.x.x.x …
然も此の一覧はスクリプトで自動でメンテされてゐたりする。
此れを前提として、やむごとなき理由でサーバーの台数を大幅に減らす事と成った。削減は人に遣っていただいたので、結果は聞けばよいのだが、聞いて正しい答が返ってくるとは必ずしも限らないので、予防として実地で確かめてみる。全サーバーにICMP pingを送り結果を一覧。時間は掛けられないので。
%ruby -e'File.read("#{ENV["HOME"]}/.ssh/config").scan(%r{^Host\s+(.+)\n\s+HostName\s+(.+)$}).uniq.sort_by{|m| m[0] }.inject({}){|table, m| table[m[0]] = m[1]; table }.select{|k, _v| k.include?("momonga") }.each{|name, ip| system("ping -c 1 #{ip}", out: "/dev/null", err: "/dev/null") ? puts("#{name} ok.") : puts("#{name} dead.") }' momonga-web-01 ok. momonga-web-02 dead. momonga-db-01-01 ok. …
書き捨てはRuby、置換は perl -pi0 -e's/…/…/g'
、書き捨てでないスクリプトファイルはCrystalで書いてゐる。