Linux の wget コマンドの詳細な紹介

Linux の wget コマンドの詳細な紹介

はじめに: wget は Linux でファイルをダウンロードするためのツールです。wget は Linux で開発されたオープンソース ソフトウェアです。作者は Hrvoje Niksic で、後に Windows を含むさまざまなプラットフォームに移植されました。

コマンドラインから使用されます。これは Linux ユーザー、特にソフトウェアをダウンロードしたり、リモート サーバーからローカル サーバーにバックアップを復元したりする必要があることが多いネットワーク管理者にとって欠かせないツールです。仮想ホストを使用する場合、このようなトランザクションを処理するには、まずリモート サーバーからコンピューターのディスクにダウンロードし、次に FTP ツールを使用してサーバーにアップロードするしかありません。これは時間とエネルギーの無駄であり、どうすることもできません。 Linux VPS では、アップロード手順を経ずにサーバーに直接ダウンロードできます。 wget ツールはサイズが小さいですが、機能が充実しています。ブレークポイント ダウンロード、FTP および HTTP ダウンロード方法、プロキシ サーバーをサポートしており、セットアップも簡単です。以下では、例を挙げて wget の使い方を説明します。

まずwgetをインストールする

[root@ネットワークテスト]# yum install -y wget

ヘルプマニュアルを見る

[root@ネットワークテスト]# wget --help
GNU Wget 1.14、非対話型ネットワーク ファイル ダウンロード ツール。
使用方法: wget [オプション]... [URL]...

長いオプションに必要な引数は、短いオプションを使用する場合にも必要です。

起動する:
  -V, --version Wget のバージョン情報を表示して終了します。
  -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 詳細出力をオフにしますが、静かなモードには入りません。
       --report-speed=TYPE 帯域幅を TYPE として出力します。TYPE はビットにすることができます。
  -i, --input-file=FILE ローカルまたは外部の FILE から URL をダウンロードします。
  -F, --force-html 入力ファイルを HTML ファイルとして扱います。
  -B, --base=URL URL (-i -F オプションで指定) を基準にして HTML 入力ファイルを解析します。
       --config=FILE 使用する設定ファイルを指定します。

ダウンロード:
  -t, --tries=NUMBER 再試行回数を NUMBER に設定します (0 は無制限を意味します)。
       --retry-connrefused 接続が拒否された場合でも再試行します。
  -O, --output-document=FILE ドキュメントを FILE に書き込みます。
  -nc, --no-clobber ダウンロードをスキップする
                                 既存のファイル(上書き)
  -c, --continue ファイルのダウンロードを再開します。
       --progress=TYPE 進行状況バーのタイプを選択します。
  -N, --timestamping ローカル ファイルよりも新しいファイルのみを取得します。
  --no-use-server-timestamps ローカル ファイルを設定する際にサーバーのタイムスタンプを使用しません。
  -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 ~ SECONDS 秒待機します。
       --random-wait 複数のファイルを取得する場合、ランダム待機間隔は毎回 0.5*WAIT...1.5*WAIT 秒になります。
       --no-proxy プロキシの使用を無効にします。
  -Q, --quota=NUMBER 取得クォータを 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 最初に指定されたプロトコルのアドレスに接続します。FAMILY は IPv6、IPv4、またはなしのいずれかになります。
       --user=USER ftp と http の両方のユーザー名を USER に設定します。
       --password=PASS ftp と http の両方のパスワードを PASS に設定します。
       --ask-password パスワードの入力を要求します。
       --no-iri IRI サポートを無効にします。
       --local-encoding=ENC IRI (国際化リソース識別子) ローカルエンコーディングとしてENCを使用します。
       --remote-encoding=ENC デフォルトのリモートエンコーディングとして ENC を使用します。
       --unlink 上書きする前にファイルを削除します。

目次:
  -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 デフォルトページを変更します (デフォルトページは通常「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 HTTP リクエスト ヘッダーに「Referer: URL」を含めます。
       --save-headers HTTP ヘッダーをファイルに保存します。
  -U, --user-agent=AGENT Wget/VERSION ではなく AGENT として識別します。
       --no-http-keep-alive HTTP キープアライブ (永続的な接続) を無効にします。
       --no-cookies クッキーを使用しません。
       --load-cookies=FILE セッションが開始する前に FILE から Cookie を読み込みます。
       --save-cookies=FILE セッション終了後に FILE に Cookie を保存します。
       --keep-session-cookies セッション (非永続) クッキーを読み込んで保存します。
       --post-data=STRING POST メソッドを使用し、STRING をデータとして送信します。
       --post-file=FILE POST メソッドを使用し、FILE コンテンツを送信します。
       --content-disposition ローカルファイル名が選択されたときに Content-Disposition ヘッダーを許可します (実験的)。
       --content-on-error は、サーバーエラー時に受信したコンテンツを出力します。
       --auth-no-challenge 最初の待機サーバーチャレンジなしで基本 HTTP 認証を送信します。

HTTPS (SSL/TLS) オプション:
       --secure-protocol=PR セキュアプロトコルを選択します。自動、SSLv2、
                                SSLv3、TLSv1、TLSv1_1、TLSv1_2。
       --no-check-certificate サーバーの証明書を検証しません。
       --certificate=FILE クライアント証明書ファイル。
       --certificate-type=TYPE クライアント証明書の種類、PEM または DER。
       --private-key=FILE 秘密鍵ファイル。
       --private-key-type=TYPE 秘密鍵ファイルのタイプ、PEM または DER。
       --ca-certificate=FILE CA 証明書のセットを含むファイル。
       --ca-directory=DIR CA 証明書のハッシュのリストを保存するディレクトリ。
       --random-file=FILE SSL PRNG を生成するためのランダム データを含むファイル。
       --egd-file=FILE ランダムデータを含む EGD ソケットのファイルの名前。

FTP オプション:
       --ftp-user=USER FTP ユーザー名を USER に設定します。
       --ftp-password=PASS ftp パスワードを PASS に設定します。
       --no-remove-listing 「.listing」ファイルを削除しません。
       --no-glob FTP ファイル名にワイルドカード拡張を使用しません。
       --no-passive-ftp 「パッシブ」転送モードを無効にします。
       --preserve-permissions リモート ファイルの権限を保持します。
       --retr-symlinks ディレクトリを再帰的に参照する場合、リンクされたファイル (ディレクトリではない) を取得します。

WARC オプション:
       --warc-file=FILENAME は、要求/応答データを .warc.gz ファイルに保存します。
       --warc-header=STRING は、warcinfo レコードに STRING を挿入します。
       --warc-max-size=NUMBER は WARC ファイルの最大サイズを NUMBER に設定します。
       --warc-cdx CDX インデックス ファイルを書き込みます。
       --warc-dedup=FILENAME は、この CDX ファイルにリストされているレコードを保存しません。
       --no-warc-compression は WARC ファイルを GZIP で圧縮しません。
       --no-warc-digests は SHA1 ダイジェストを計算しません。
       --no-warc-keep-log は、ログ ファイルを WARC レコードに保存しません。
       --warc-tempdir=DIRECTORY によって作成される一時ファイルの場所
                                 WARCライター。

再帰ダウンロード:
  -r、--recursive は再帰ダウンロードを指定します。
  -l, --level=NUMBER 最大再帰深度 (inf または 0 は無制限、つまりすべてをダウンロードすることを意味します)。
       --delete-after ダウンロードが完了したらローカルファイルを削除します。
  -k, --convert-links ダウンロードした HTML または CSS 内のリンクをローカル ファイルにポイントします。
  --backups=N ファイル X を書き込む前に、最大 N 個のバックアップ ファイルをローテーションします。
  -K, --backup-converted 変換する前にファイル X を X.orig としてバックアップします。
  -m の短縮形、--mirror -N -r -l inf --no-remove-listing。
  -p, --page-requisites HTML ページの表示に使用される画像などのすべての要素をダウンロードします。
       --strict-comments HTML コメントを厳密モード (SGML) で処理します。

再帰的な承認/拒否:
  -A, --accept=LIST 許容される拡張子のカンマ区切りリスト。
  -R, --reject=LIST 拒否する拡張子のカンマ区切りリスト。
       --accept-regex=REGEX 受け入れられた URL に一致する正規表現。
       --reject-regex=REGEX 拒否された URL に一致する正規表現。
       --regex-type=TYPE 正規表現タイプ (posix|pcre)。
  -D, --domains=LIST 許容されるドメインのカンマ区切りリスト。
       --exclude-domains=LIST 除外するドメインのカンマ区切りリスト。
       --follow-ftp HTML ドキュメント内の FTP リンクをたどります。
       --follow-tags=LIST 追跡する HTML タグのカンマ区切りリスト。
       --ignore-tags=LIST 無視する HTML タグのカンマ区切りリスト。
  -H, --span-hosts 再帰時に外部ホストに分散します。
  -L, --relative 相対リンクのみをたどります。
  -I, --include-directories=LIST 許可されるディレクトリのリスト。
  --trust-server-names リダイレクトで指定された名前を使用する
                                   URL の最後のコンポーネント。
  -X, --exclude-directories=LIST ディレクトリのリストを除外します。
  -np, --no-parent 親ディレクトリまでトレースバックしません。

1. wgetを使用して単一のファイルをダウンロードする

次の例では、ネットワークからファイルをダウンロードし、現在のディレクトリに保存します。

ダウンロード処理中は、ダウンロード完了率、ダウンロードされたバイト数、現在のダウンロード速度、残りのダウンロード時間などを示す進行状況バーが表示されます。

http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz をダウンロードしてください

2. wget -Oを使用してダウンロードし、別のファイル名で保存します。

[root@ネットワークテスト]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
[root@ネットワークテスト]# ls
wordpress-4.9.4-zh_CN.tar.gz

-Oパラメータを使用してファイル名を指定できます。

wget -O wordpress.tar.gz http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
wordpress.tar.gz

3. wget -cを使用してダウンロードを再開します

中断されたダウンロードを再開するには、 wget -cを使用します。

これは、大きなファイルをダウンロードしているときに、ネットワークやその他の理由で突然中断された場合に非常に役立ちます。ファイルを再度ダウンロードする代わりに、ダウンロードを続行できます。

wget -c https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

4. wget -bを使用してバックグラウンドでダウンロードする

非常に大きなファイルをダウンロードする場合は、パラメータ-bを使用してバックグラウンドでダウンロードすることができます。

[root@ネットワークテスト]# wget -b https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
pid 1463 でバックグラウンドで実行を続行します。
出力は 'wget-log' に書き込まれます。

ダウンロードの進行状況を確認するには、次のコマンドを使用できます。

[root@ネットワークテスト]# tail -f wget-log
  8550K .......... .......... .......... .......... 96% 814K 0秒
  8600K .......... .......... .......... .......... 97% 9.53M 0s
  8650K .......... .......... .......... .......... 98% 86.8M 0s
  8700K .......... .......... .......... .......... 98% 145M 0s
  8750K .......... .......... .......... .......... 99% 67.4M 0s
  8800K .......... .......... .......... .......... 99% 107M 0s
  8850K .......... ......... 100% 1.95M=16秒

2018-11-10 15:39:07 (564 KB/s) - 「wordpress-4.9.4-zh_CN.tar.gz.2」を保存しました [9082696/9082696])

5. 偽装プロキシ名でダウンロード

一部の Web サイトでは、プロキシ名がブラウザーではないと判断してダウンロード要求を拒否する場合があります。ただし、 –user-agentパラメータを使用してこれを隠すことができます。

6. wget –spiderを使用してダウンロードリンクをテストします

ダウンロードをスケジュールする予定の場合は、スケジュールされた時間にダウンロード リンクが有効かどうかをテストする必要があります。確認するには–spiderパラメータを追加できます。

wget –スパイダー URL
ダウンロードリンクが正しい場合は、wget –spider URL が表示されます。
スパイダー モードが有効です。リモート ファイルが存在するかどうかを確認します。
HTTP リクエストが送信されました。応答を待っています… 200 OK
長さ: 未指定 [text/html]
リモートファイルが存在し、さらにリンクが含まれている可能性があります。
ただし、再帰は無効になっているため、取得できません。
これにより、ダウンロードはスケジュールされた時間に実行されますが、間違ったリンクを指定すると、次のエラーが表示されます。wget –spider url
スパイダー モードが有効です。リモート ファイルが存在するかどうかを確認します。
HTTP リクエストが送信されました。応答を待っています… 404 見つかりません
リモート ファイルが存在しません - リンクが壊れています!!!

スパイダー パラメータは次の状況で使用できます。

  • スケジュールされたダウンロードの前に確認する
  • ウェブサイトの可用性の間隔検出
  • ウェブサイトのページにリンク切れがないか確認する

7. wget –triesを使用して再試行回数を増やす

ネットワークに問題がある場合や、ダウンロードするファイルが大きい場合にも失敗する可能性があります。デフォルトでは、wget は接続してファイルをダウンロードするために 20 回再試行します。必要に応じて、 –triesを使用して再試行回数を増やすことができます。

wget –tries=40 URL

8. wget -iを使用して複数のファイルをダウンロードする

まず、ダウンロードリンクファイルcat > filelist.txtを保存します。
url1
url2
url3
url4
次に、このファイルとパラメータ-iを使用してwget -i filelist.txtをダウンロードします。

9. wget –mirrorを使用してWebサイトをミラーリングする

wget --mirror --convert-links --adjust-extension --page-requisites 
--親なし http://example.org

または

wget -mkEpnp http://example.org
  • --mirror – 指定されたウェブサイトの下にあるすべてのリソースを再帰的にダウンロードします
  • --convert-links – 絶対リンクを相対リンクに変換する
  • --adjust-extension – コンテンツタイプに応じてファイル名を調整し、適切なファイル拡張子を追加します
  • --page-requisites – 依存する他の CSS、Javascript、画像、その他のリソースをダウンロードします
  • --no-parent – 親ディレクトリのリソースをダウンロードしない

10. wget –rejectを使用して、指定された形式のダウンロードをフィルタリングします。

ウェブサイトをダウンロードしたいが、画像をダウンロードしたくない場合は、次のコマンドを使用できます。

wget –reject=gif url

11. wget -o を使用してダウンロード情報をログファイルに保存します。

ダウンロード情報をターミナルに直接表示するのではなく、ログ ファイルに表示したい場合は、次のコマンドを使用できます。

wget -o download.log URL

wget -Oを使用してダウンロードし、別のファイル名で保存します (-O: ファイルを対応するディレクトリにダウンロードし、ファイル名を変更します)

wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080 

バックグラウンドでダウンロードするにはwget -bを使用します

wget -b http://www.minjieren.com/wordpress-3.1-zh_CN.zip

注: ダウンロードの進行状況を表示するには、次のコマンドを使用できます: tail -f wget-log

-spiderを使用: ダウンロードをシミュレートしますが、ダウンロードは行わず、Web サイトが適切かどうかのみを確認します。

[root@localhost ~]# wget --spider www.baidu.com #ファイルをダウンロードしないでください

プリントサーバーの応答のダウンロードをシミュレートする

[root@localhost ~]# wget -S www.baidu.com # サーバーの応答を印刷する

指定回数を設定する

[root@localhost ~]# wget -r --tries=2 www.baidu.com (2回の試行を指定し、2回試行した後はそれ以上試行しない)
[root@localhost ~]# wget -r --tries=2 -q www.baidu.com (試行回数を指定し、中間結果は出力しません) 

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux での wget コマンドの基本的な使い方
  • Linuxのwgetコマンドの詳細な説明
  • Linux の wget コマンドの詳細な紹介
  • Linuxのwgetコマンドの詳細な説明

<<:  CSS を使用してプログレスバーと順序プログレスバーを実装する例

>>:  ウェブマスターが注目すべき、ウェブサイトのユーザビリティを向上させる 9 つのコード最適化のヒント

推薦する

JavaScript を使用して簡単なアルゴリズムを実行する方法

目次質問1件2つの方法3 実験結果と考察質問1件ご存知のとおり、 Pycharm 、 IDLE 、 ...

Tencent Cloud Server Centosにデータディスクをマウントする方法

まず、ハードディスクデバイスにデータディスクがあるかどうかを確認します # まずfdisk -lを実...

1時間で学ぶMySQLの基礎

目次MySQL を使い始めるMySQL 管理6. MySQL サーバーを起動および停止します。 7....

Window.nameはクロスドメインデータ転送の問題を解決します

<br />原文: http://research.microsoft.com/~hel...

Saltstack に Zabbix サービスをデプロイする方法を説明します

目次SaltstackがZabbixサービスを導入httpd、mysql、phpをインストールするh...

JavaScript でオブジェクトをトラバースする 5 つの方法 サンプルコード

目次準備する5つの武器…のためにオブジェクト.キーオブジェクト.getOwnPropertyName...

docker ストレージを使用して Exit を実行すると、サーバーへのファイルのアップロードが失敗する問題と解決策

1. 問題の説明Docker コンテナにインストールされているストレージが終了状態になっているため、...

Linux での Nginx アンチホットリンクと最適化の実装コード

バージョン番号を非表示バージョン番号は非表示になっていません。セキュリティを強化するために、バージョ...

JavaScript でエラーが発生しやすい演算子操作の概要

目次算術演算子異常状況1: 特殊値リテラルを含む操作異常な状況 2: 他の種類のデータが数学演算に関...

CSS でよく発生する問題の整理 (ロゴのハッキング/コンテナの固定/画像の垂直方向の中央揃え)

1. IEブラウザモードハックロゴ1. CSSハックロゴコードをコピーコードは次のとおりです。 ie...

CentOS7 ファイアウォールとオープンポートの簡単な使い方の簡単な紹介

概要(公式にはより詳しい説明があります) Firewalld は、ネットワーク接続またはインターフェ...

Vueは3段階のナビゲーション表示と非表示を実装します

この記事では、3階層ナビゲーションの表示と非表示を実現するためのVueの具体的なコードを例として紹介...

MySQLデータベースのトランザクション分離レベルの詳細な説明

データベーストランザクション分離レベルデータベース トランザクションには、低から高まで 4 つの分離...

レスポンシブWebデザイン学習(1) - 画面サイズと使用率の決定

最近では、モバイルデバイスがますます普及しており、ユーザーがスマートフォンやタブレットを使用して W...

MySQL マスタースレーブレプリケーションの実践の詳細説明 - GTID ベースのレプリケーション

GTIDベースのレプリケーション導入GTID ベースのレプリケーションは、MySQL 5.6 以降に...