VNCを使ってリモートサーバを自動操作「ruby-vnc」
ruby-vncはRubyを使ってVNC接続を行い、マウスやキーボードの自動操作を行うライブラリ。
ruby-vncはRuby製のオープンソース・ソフトウェア。システム管理者などは複数台のマシンを操作しなければならない人が多い。そんなとき、常に手元に置いておくのではなくサーバルームにあるマシンをリモート操作するケースが多いのではないだろうか。そんな時に役立つのがVNCだ。
ScreenShot(2011-09-18 10.36.46).png
RDPなどもあるが、VNCは殆どのプラットフォームに対応したプロトコルなので扱いやすい。そんなVNCを使っている際に、常に同じ操作を行っていると思ったらチャレンジしてみたいのがruby-vncだ。
ruby-vncはRubyを使ってVNC接続を行い、さらに自動操作を行うソフトウェアだ。パスワード接続に対応している。接続した後、pointer_moveというメソッドを使ってX/Y座標を指定してマウスポインタを移動できる。マウスを移動するのと違って一瞬で移動するのが良い。
さらにtypeメソッドで文字列を入力できる。一文字単位ではなくテキストを一気に流し込める。そしてkey_pressを使って特殊キー(エンターなど)を入力可能だ。用途は限られるかもしれないが、VNCに接続して一定の操作を行って…というのが定常的に発生しているならば試してみる価値はありそうだ。
MOONGIFTはこう見る
個人的には以前勤めていた会社で入退室管理用マシンがVNC接続で管理していたので、その時の操作をruby-vncを使えば自動でできたのではないかと思える。Linuxであればコンソールで大抵のことはできるが、WindowsやMac OSXをVNCで操作する場合に活躍しそうだ。
面白いのは画面が出る訳ではないのでローカルにつないで自動操作にも使える所だ。一般的にVNCをローカルにつなぐと合わせ鏡のようにグラフィックスが繰り返し表示されてしまうがそのようなことはない。VNCであればWindows/Mac OSX/Linuxと同じ操作ができる。GUIで操作するマシンの自動化に使えるだろう。
GUIはコンピュータの世界を飛躍的に向上させたが、自動化を得意としていたコンピュータを一気にアナログに近づけてしまった感がある。自動化しようと思ってもGUIではなかなかままならない。しかしそういったアナログで手間がかかる部分こそはじめに苦労してでも自動化すれば生産性は一気に高まるはずだ。
ruby-vnc - A library for interaction automation of servers via VNC - Google Project Hosting