他のサイトを参ローカル環境にコピーするにはwgetという便利なコマンドがあります。 オプションなしで実行するとレイアウト崩れや画像抜けが発生するので適当なオプション およびその役割をピックアップしてみます。 ■構成情報 ・OS: CentOS6.3(64bit) ・wget: 1.12(OSバンドル)
■頭脳指数サイトをのトップページをwget
[root@cent63 ~]# wget -x -p -nH -k -P /var/www/html/wget -a wget.log http://tanyao.dynalias.net [root@cent63 ~]#2~3秒もかからないくらいで完了します。
■オプション概要
-x, --force-directories ⇒ディレクトリを強制的に作る -p, --page-requisites ⇒HTML を表示するのに必要な全ての画像等も取得する -nH, --no-host-directories ⇒ホスト名のディレクトリを作らない -k, --convert-links ⇒HTML や CSS 中のリンクをローカルを指すように変更する -P, --directory-prefix=PREFIX ⇒ファイルを PREFIX/ 以下に保存する -a, --append-output=FILE ⇒メッセージを FILE に追記する
■取得内容確認
[root@cent63 ~]# ll /var/www/html/wget/ 合計 32 -rw-r--r-- 1 root root 214 1月 8 02:17 2003 index.css -rw-r--r-- 1 root root 234 1月 6 22:19 2013 index.html drwxr-xr-x 2 root root 4096 1月 6 22:19 2013 index_img -rw-r--r-- 1 root root 5356 1月 6 22:19 2013 index_link.cgi -rw-r--r-- 1 root root 1476 3月 23 18:13 2008 link_pass.js -rw-r--r-- 1 root root 6230 1月 6 22:19 2013 zunou.html [root@cent63 ~]# du -sh /var/www/html/wget/ 96K /var/www/html/wget/ [root@cent63 ~]# find /var/www/html/wget/ | wc -l 22 [root@cent63 ~]#ブラウザでアクセスすると同一ページが表示されました。
http://192.168.xxx.146/wget/
以下、wgetのオプション説明
◆スタートアップ
-V, --version バージョン情報を表示して終了する -h, --help このヘルプを表示する -b, --background スタート後にバックグラウンドに移行する -e, --execute=COMMAND `.wgetrc'形式のコマンドを実行する
◆ログと入力ファイル
-o, --output-file=FILE ログを FILE に出力する -a, --append-output=FILE メッセージを FILE に追記する -d, --debug デバッグ情報を表示する -q, --quiet 何も出力しない -v, --verbose 冗長な出力をする (デフォルト) -nv, --no-verbose 冗長ではなくする -i, --input-file=FILE FILE の中に指定された URL をダウンロードする -F, --force-html 入力ファイルを HTML として扱う -B, --base=URL HTML で入力されたファイル(-i -F)のリンクを指定した URL の相対 URL として扱う
◆ダウンロード
-t, --tries=NUMBER リトライ回数の上限を指定 (0 は無制限). --retry-connrefused 接続を拒否されてもリトライする -O, --output-document=FILE FILE に文書を書きこむ -nc, --no-clobber 存在しているファイルをダウンロードで上書きしない -c, --continue 部分的にダウンロードしたファイルの続きから始める --progress=TYPE 進行表示ゲージの種類を TYPE に指定する -N, --timestamping ローカルにあるファイルよりも新しいファイルだけ取得する -S, --server-response サーバの応答を表示する --spider 何もダウンロードしない -T, --timeout=SECONDS 全てのタイムアウトを SECONDS 秒に設定する --dns-timeout=SECS DNS 問い合わせのタイムアウトを SECS 秒に設定する --connect-timeout=SECS 接続タイムアウトを SECS 秒に設定する --read-timeout=SECS 読み込みタイムアウトを SECS 秒に設定する -w, --wait=SECONDS ダウンロード毎に SECONDS 秒待つ --waitretry=SECONDS リトライ毎に 1 0SECONDS 秒待つ --random-wait ダウンロード毎に 0 02*WAIT 秒待つ --no-proxy プロクシを使わない -Q, --quota=NUMBER ダウンロードするバイト数の上限を指定する --bind-address=ADDRESS ローカルアドレスとして ADDRESS (ホスト名か IP) を使う --limit-rate=RATE ダウンロード速度を RATE に制限する --no-dns-cache DNS の問い合わせ結果をキャッシュしない --restrict-file-names=OS OS が許しているファイル名に制限する --ignore-case ファイル名/ディレクトリ名の比較で大文字小文字を無視する -4, --inet4-only IPv4 だけを使う -6, --inet6-only IPv6 だけを使う --prefer-family=FAMILY 指定したファミリ(IPv6, IPv4, none)で最初に接続する --user=USER ftp, http のユーザ名を指定する --password=PASS ftp, http のパスワードを指定する --ask-password パスワードを別途入力する --no-iri IRI サポートを使わない --local-encoding=ENC 指定した ENC を IRI のローカルエンコーディングにする --remote-encoding=ENC 指定した ENC をデフォルトのリモートエンコーディングにする
◆ディレクトリ
-nd, --no-directories ディレクトリを作らない -x, --force-directories ディレクトリを強制的に作る -nH, --no-host-directories ホスト名のディレクトリを作らない --protocol-directories プロトコル名のディレクトリを作る -P, --directory-prefix=PREFIX ファイルを PREFIX/ 以下に保存する --cut-dirs=NUMBER リモートディレクトリ名の NUMBER 階層分を無視する
◆HTTP オプション
--http-user=USER http ユーザ名として USER を使う --http-password=PASS http パスワードとして PASS を使う --no-cache サーバがキャッシュしたデータを許可しない --default-page=NAME デフォルトのページ名を NAME に変更します。通常は `index.html' です -E, --adjust-extension HTML/CSS 文書は適切な拡張子で保存する --ignore-length `Content-Length' ヘッダを無視する --header=STRING 送信するヘッダに STRING を追加する --max-redirect ページで許可する最大転送回数 --proxy-user=USER プロクシユーザ名として USER を使う --proxy-password=PASS プロクシパスワードとして PASS を使う --referer=URL Referer を URL に設定する --save-headers HTTP のヘッダをファイルに保存する -U, --user-agent=AGENT User-Agent として Wget/VERSION ではなく AGENT を使う --no-http-keep-alive HTTP の keep-alive (持続的接続) 機能を使わない --no-cookies クッキーを使わない --load-cookies=FILE クッキーを FILE から読みこむ --save-cookies=FILE クッキーを FILE に保存する --keep-session-cookies セッションだけで用いるクッキーを保持する --post-data=STRING POST メソッドを用いて STRING を送信する --post-file=FILE POST メソッドを用いて FILE の中味を送信する --content-disposition Content-Disposition ヘッダがあればローカルのファイル名として用いる (実験的) --auth-no-challenge サーバからのチャレンジを待たずに、Basic認証の情報を送信します。
◆HTTPS (SSL/TLS) オプション
--secure-protocol=PR セキュアプロトコルを選択する (auto, SSLv2, SSLv3, TLSv1) --no-check-certificate サーバ証明書を検証しない --certificate=FILE クライアント証明書として FILE を使う --certificate-type=TYPE クライアント証明書の種類を TYPE (PEM, DER) に設定する --private-key=FILE 秘密鍵として FILE を使う --private-key-type=TYPE 秘密鍵の種類を TYPE (PEM, DER) に設定する --ca-certificate=FILE CA 証明書として FILE を使う --ca-directory=DIR CA のハッシュリストが保持されているディレクトリを指定する --random-file=FILE SSL PRNG の初期化データに使うファイルを指定する --egd-file=FILE EGD ソケットとして FILE を使う
◆FTP オプション
--ftp-user=USER ftp ユーザとして USER を使う --ftp-password=PASS ftp パスワードとして PASS を使う --no-remove-listing `.listing' ファイルを削除しない --no-glob FTP ファイル名のグロブを無効にする --no-passive-ftp "passive" 転送モードを使わない --retr-symlinks 再帰取得中に、シンボリックリンクでリンクされた先のファイルを取得する
◆再帰ダウンロード
-r, --recursive 再帰ダウンロードを行う -l, --level=NUMBER 再帰時の階層の最大の深さを NUMBER に設定する (0 で無制限) --delete-after ダウンロード終了後、ダウンロードしたファイルを削除する -k, --convert-links HTML や CSS 中のリンクをローカルを指すように変更する -K, --backup-converted リンク変換前のファイルを .orig として保存する -m, --mirror -N -r -l 0 --no-remove-listing の省略形 -p, --page-requisites HTML を表示するのに必要な全ての画像等も取得する --strict-comments HTML 中のコメントの処理を厳密にする
◆再帰ダウンロード時のフィルタ
-A, --accept=LIST ダウンロードする拡張子をコンマ区切りで指定する -R, --reject=LIST ダウンロードしない拡張子をコンマ区切りで指定する -D, --domains=LIST ダウンロードするドメインをコンマ区切りで指定する --exclude-domains=LIST ダウンロードしないドメインをコンマ区切りで指定する --follow-ftp HTML 文書中の FTP リンクも取得対象にする --follow-tags=LIST 取得対象にするタグ名をコンマ区切りで指定する --ignore-tags=LIST 取得対象にしないタグ名をコンマ区切りで指定する -H, --span-hosts 再帰中に別のホストもダウンロード対象にする -L, --relative 相対リンクだけ取得対象にする -I, --include-directories=LIST 取得対象にするディレクトリを指定する -X, --exclude-directories=LIST 取得対象にしないディレクトリを指定する -np, --no-parent 親ディレクトリを取得対象にしない