wgetでリンクチェック
$ wget -r -p -nv -l 0 --delete-after -nd --spider \ --domains=example.com www.example.com 2>&1 \ | egrep -A100 '^Found .* broken links?\.$'
オプション--spider を指定すると、完了後に
Found 1 broken link. http://www.example.com/img.gif referred by: http://www.example.com/index.html
のような結果表示をしてくれるようです。特に参照元がでるのはとても助かる。
(※複数のページから参照されているファイルがみつからない場合、参照元は一つだけしか表示されないみたい)
ただ、CentOS5では期待通り動くものの、Debianではうまく動かないようです。--spider、 --delete-after、-nd あたりの組み合わせがダメポ。あと結果表示もしてくれない。参照元を再度探すのは面倒。
メモ
- -r
- 再帰ダウンロードを行う
- -p
- HTMLを表示するのに必要な全ての画像等も取得する
- -nv
- 出力が冗長ではなくする
- -l
- 再帰時の階層の最大の深さをNUMBERに設定する(0で無制限)
- --delete-after
- ダウンロード終了後、ダウンロードしたファイルを削除する。robots.txtは消さないみたい
- -nd
- ディレクトリを作らない
- --spider
- 何もダウンロードしない
- --domains
- ダウンロードするドメインをコンマ区切りで指定する