2012年5月27日日曜日

wget の '--spider' オプションはHEADメソッド

こちら wget –spider = Head Request : alexking.org の記事について。


自分の場合、ブックマーク(リンク集)のリンク切れをまとめてチェックしたいときにwget の '--spider'オプションを使う。このような利用方法のときは特に気にすることはないのだが、何らかのWebアプリケーションを実行したい場合には注意が必要とのこと。

というのは 'wget --spider' がHEADメソッドを実行するよう実装されているので、Webアプリのコードが実行されないことがあるらしい(サーバーの環境や設定に依存するみたいだが)。

GETでアクセスしつつ、ダウンロードされたファイルを自動的に削除したい場合には、'--delete-after'オプションを使うのがよい。

NetHogs - プロセスごとのデータ転送量をtop風に表示

既存のネットワークアプリの転送量を調べるときに使ったソフト。サーバーでこの NetHogs を起動しておいて、クライアント側でアプリのシナリオとかユースケースを1つ実行。サーバーのほうの画面で何バイト送受信したかを見て記録しておく。「なるほどこのシナリオの場合はx[KB]くらい通信するのか」と、だいたいの数字が分かる。

特徴は、転送速度(KB/sec)だけでなく、転送量の累積値が表示されるところ。たぶん初期状態では KB/sec の表示になっているが、実行中に m キーを押せば表示モードが KB/sec, KB, MB, B とサイクリックに切り替わる。

インストールに関しては、libpcap と ncurses に依存している。今回の環境(CentOS-6.0)では、epelリポジトリから yum でインストールできたので特に問題無し。


表示の例

テキトーに sshd と apache にアクセスした場合のキャプチャを貼り付けておく。

まずは Byte単位の表示。

プロセスのIDごとに、USER, PROGRAM, DEV, SENT, RECEIVED が表示される。シンプル。

それから KB/sec 単位の表示。


Windows バッチファイル FOR文での「コマンド置換」

Windowsの .bat ファイルを書いた。そして、dir等のコマンドの出力を、FOR文のパラメータとして指定する方法を知った。


.batファイルの例
拡張子 xml のファイル名を降順ソートで列挙し、後続のコマンド(ここでは単なる echo)に渡すFOR文。

@echo off
for /F "usebackq" %%file IN (`DIR /B /-N *.xml`) DO @echo %%file


Unix系のシェルで言うところのコマンド置換(command substitution)。バッククォート(`)を使う点は共通だ。