内容にサーバーの移転を含むお客さんの案件を受けたのですが、セキュリティポリシーがらみか何かでFTP情報とHTMLソースなどを渡せないということで、止む終えなくこちら側がwgetでサイト全体をミラーリングしようということになりました。
これから同じようなことがありそうなのでwgetについてメモっておきます。
wgetの主なオプション
割と重要そうなオプションを上げてみます。
- -m ミラー 「-N -r -l inf --no-remove-listing」のエイリアス
- -t リトライ回数
- -r 再帰的に取得
- -l リンクをたどる回数 (inf,0 =無限)
- -np 親階層は無視
- -N タイムスタンプを維持
- -w 指定した秒数待つ
- --random-wait -wで指定した秒数×0.5~1.5の範囲でランダムで待つ
wgetでサーバーに親切に落としてみる
結論から言いますと、下記のコマンドで落としました。
# wget -m -w 2 --random-wait http://example.com
このコマンドの説明を簡単に書きます。
ミラーリングの注意点
- なるべく負荷を少なくする
- ファイルの漏れが無いように確実に全部落とす必要がある
- できるかぎり迅速に
wgetでミラーリングするには-mという便利なオプションがあります。しかしこれではウェイトタイムなしにリクエストを送ってしまします。そうするとサーバーの大きな負担となりかねませんので-wオプションでウェイトタイムを設定します。
しかし、そのままピッタリ一定時間置きにファイルをダウンロードし続けると、もしかしたらファイアーウォールなどのポリシーによってはbotなどとして認識されアクセス制限を受けてしまう可能性もあります。
そこで待ち時間を--random-waitで-wで指定した秒数×0.5~1.5の間でランダムにします。
こうすることでファイアーウォールを回避するために少ないウェイトタイムで済む場合があります。
- 関連記事
-
-
BINDでDNSサーバを構築してみる 2015/04/05
-
CentOS7にdig,nslookup,hostをインストール 2015/04/02
-
wgetでサイトをまるごと落とす方法 2015/03/20
-
Xubuntu14.04でibus-daemonをシステム起動時に起動させる方法 2014/09/23
-
ロードアベレージ(load averages)の見方 2014/09/20
-