NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
JA

Linux コマンドとシェル スキル

wget: 眠らないダウンローダー

wget は、ミラー、アーカイブ、再帰的プル、誰も監視していない間に実行される cron バッチなど、時間単位で測定されるジョブのカールです。これは再帰的に行われ、robots.txt を尊重し、中断された転送をデフォルトで再開し、レート制限と待機間隔に合わせて調整します。これは、呼び出し元に委ねられる丁寧さのカールです。 2 つのツールの分割は明確です。wget は量と忍耐力を、curl は精度を重視し、両方を熟知しているチームは 3 番目のインストーラーを必要とすることはほとんどありません。

要点

  1. ミラーリングは 1 行です: wget --mirror --convert-links --adjust-extension --no-parent https://docs.example.com; --no-parent を省略すると、ドキュメント アーカイブはその上にあるすべてのものを静かにクロールすることになります。
  2. 無料で再開して再試行します。 wget -c は中断された転送のバックアップを選択し、 --tries=10 --waitretry=5 は最初の動作でジョブを失敗させるのではなく、バルクの途中で中断するサーバーを追い出します。
  3. ポライトネスには、 --limit-rate=200k、--wait=1、および --random-wait というフラグがあり、ミラーがアップストリームのレート制限や共有サーバーの不正使用条項に引っかからないようにします。共有ホスティングと抑制されていないクローラーは、短い友情です。
  4. robots.txt はデフォルトで尊重されます。 -e robots=off はこれを意図的にオーバーライドし、そのオーバーライドを他の人の運用サイトに対して使用すると、一括ダウンロードがインシデント チケットに変わります。
  5. wget -O /dev/null -nv https://host/health は 1 行の監視プローブで、その終了コードには診断が含まれます。4 はネットワーク障害、8 はサーバー エラーで、どちらもサイレント cron を破ります。
  6. 変換は事後的に重要です。--convert-links はオフライン ナビゲーション用にミラーリングされたサイトを書き換え、--adjust-extension は CMS で生成されたページをローカル ツールが提供できる拡張子で保存します。
  7. cron の一括ジョブはロック ファイルを取得するか、重複する実行がお互いの途中のファイルに書き込みますが、 --waitretry は静かにジョブをそのウィンドウを超えて引き伸ばします。 wget には内部ミューテックスがありません。
  8. 境界を理解してください。フォーム、Cookie を多用するセッション、および API エンドポイントはcurlに属し、wget はスクリプトではなくリンクに従うため、JavaScript で構築されたページは空のシェルとしてミラーリングされます。

現場ノート

--no-parent のない 1 つのミラーが一晩でクライアントのメディア ライブラリの 40 GB に侵入し、ディスクがほぼいっぱいになりました。ポライトネス フラグは一度設定されると、その後は永久にコピーされます。

よくある質問

私のミラーには 1 ページしか含まれていないのはなぜですか?

スコープ フラグは、robots.txt の制限、--no-parent、深さの制限、または JavaScript でレンダリングされるサイトなど、誰かが元に戻そうとした作業を実行しました。 wget は表示できるリンクをたどります。ツールのせいにする前に -o wget.log を確認してください。

1 回のダウンロードで、curl ではなく wget を選択する必要があるのはどのような場合ですか?

再開可能または cron の信頼性のあるものについては、-c 継続、組み込みの再試行、およびタイムスタンプ (--timestamping) により、wget が注目度の低いスパンの選択肢になります。 curl は自分でアセンブルした場合にのみ同じものを提供します。

公開サイトをミラーリングすることは合法ですか、それとも礼儀正しいのでしょうか?

所有権は合法であるかどうかを決定し、robots.txt とロードは礼儀正しいものであるかどうかを決定します。robots ファイルを尊重し、人間らしい速度に調整し、ターゲットが提供した瞬間に公式のエクスポートまたは API を優先します。

一部のサイトがプレーンな wget に 403 を返すのはなぜですか?

ユーザー エージェント フィルタリング。通常は意図的です。 --user-agent='Mozilla/5.0' で問題は解決しますが、フィルタリングされた 403 はオペレーターが監視していることも意味するため、次のステップとしてはダイアログまたは API を使用する方が適切です。

linux コマンドとシェル スキル に対するKinetikatechの支援

これは何百回と対応してきたケースです:管理者がサーバーを操作するかサーバーと戦うかを決定するコマンドとスクリプトの習慣。すべての基本インストールに存在するツールを使用して、テキストとプロセスを検索、変換、転送、監視します。 Linuxサーバーセキュリティとサーバー管理で、評価、実装、24時間体制の監視、そして重要な時に30分以内の対応という、完全なサイクルを提供します。

エンジニアに相談する

サーバーの障害?サイトの改ざん?表示が遅い?

重大な障害には30分以内に対応 — 24時間365日体制です。

緊急サポートを依頼する support@kinetikatech.com