GNU/Linux >> Linux の 問題 >  >> Cent OS

Wget を使用してファイルと Web ページを読み込む方法。下

wget コマンドを使用して、HTTP、HTTPS、および FTP プロトコルを使用してファイルをダウンロードできます。バックグラウンドでファイルをダウンロードしたり、Web サイトを閲覧したり、中断されたダウンロードを再開したりできる強力なツールです。 Wget には、非常に劣悪なネットワーク条件でファイルをダウンロードできるオプションも多数用意されています。

この記事では、コマンド ラインから wget を使用して一般的なダウンロード タスクを実行する方法について説明します。

wget をインストール

Linux

ほとんどの Linux ディストリビューションには、デフォルトで wget がインストールされています。システムにインストールされているかどうかを確認するには、wget と入力します。 を端末に入力し、Enter キーを押します。インストールされていない場合、「コマンドが見つかりません」というエラーが表示されます。以下の適切なコマンドを使用して、システムにインストールしてください。

Ubuntu/Debian ベースのシステムの場合:

sudo apt update
sudo apt install wget

CentOS/RHEL システムの場合:

sudo yum install wget

MacOS

wget は自作パッケージとして入手できるので、自作ページに行き、指示に従ってインストールしてください。その後、以下で wget をインストールできます:

brew install wget

wget は、一連の Unix ライクなコマンド ライン ツールを提供することを目的としたプロジェクトである msys2 の一部です。 msys2 のホームページにアクセスし、ページの指示に従ってインストールします。次に、msys2 ウィンドウを開き、次のように入力します。

pacman -S wget

これで、MSYS2 シェルから wget コマンドにアクセスできるようになりました。

URL を含むファイルをダウンロード

特定のファイルへのリンクがある場合は、パラメーターとして URL を指定するだけで wget を使用してダウンロードできます。

wget https://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso

上記のコマンドを実行すると、次のような進捗情報が表示されます。 B. 現在のダウンロード速度とダウンロードされたファイルの量:

wget は、URL の最後の部分からファイル名を取得し、それを現在のディレクトリにダウンロードします。この例では、ファイルは ubuntu-18.04-desktop-amd64.iso の下に保存されます .

複数のファイルがある場合は、1 つずつ指定できます:

wget <url_1> <url_2>

wget は、ファイルが URL から直接アクセスできる場合にのみ機能することに注意してください。場合によっては、リンクを使用して直接ダウンロードできないファイルに出くわすことがあります。 B. 記事にログインした後にアクセスできるファイル。



FTP 経由でファイルをダウンロード

Wget は FTP でも同じように機能します。次のように、FTP URL を引数として指定します。

wget ftp://ftp.example.com/ubuntu/ubuntu-18.04-desktop-amd64.iso

FTP ファイルは、ユーザー名とパスワードで保護できる場合があります。次のように wget に渡すことができます:

wget --ftp-user=booleanworld --ftp-password=passw0rd <ftp_url>

出力ファイル名とディレクトリをカスタマイズ

既に説明したように、wget はファイル名を取得し、それらを現在のディレクトリにダウンロードします。ファイルを別のディレクトリまたは別の名前で保存する場合は、 -O を使用できます スイッチ。たとえば、ダウンロードをファイル Ubuntu.iso に保存する場合 、実行:

wget <url> -O Ubuntu.iso

この方法でディレクトリを変更することもできます。たとえば、ダウンロードをファイル Ubuntu.iso として保存するには /media/sdb1/Software 未満 、実行:

wget <url> -O /media/sdb1/Software/Ubuntu.iso

場合によっては、ディレクトリを指定したいが、ファイル名は wget に任せたいと思うかもしれません。 -P を使用してこれを行うことができます スイッチ。 /media/sdb1/Software の下にファイルがある場合 ディレクトリ、使用:

wget <url> -P /media/sdb1/Software

中断されたダウンロードを再開

ネットワークの状態が悪いため、または wget がまだファイルをダウンロードしているときに Ctrl+C を押して手動で中断したために、ダウンロードが中断される場合があります。 wget の -c で中断されたダウンロードを再開できます スイッチ:

wget -c <url>

カスタム ディレクトリまたはファイルにダウンロードした場合は、-c を使用する必要があります。 そして -P /-O 次のように切り替えます:

wget -c <url> -O <path_to_downloaded_file>

-O を使用する場合 と -c 、正しい URL を提供していることを確認してください。そうしないと、2 つの異なるファイルが部分的に結合され、使用できなくなります。さらに、一部のサーバーでは、ファイルのダウンロードの再開が許可されていません。 (サーバーが再開をサポートしているかどうかは、進行状況バーを見ることでわかります。最初のダウンロード中に進行状況バーが左右ではなく前後に移動している場合、サーバーは再開を許可していません。)始まり。

ダウンロード速度調整

大きなファイルをダウンロードする場合は、ダウンロード速度を制御して、Web を閲覧するための追加の帯域幅を確保することをお勧めします。 --limit-rate でこれを行うことができます スイッチ。たとえば、ダウンロード速度を 512 KB/秒に制限するには、次を使用します:

wget <url> --limit-rate=512k

m も使用できます MB/秒の制限のサフィックス。

バックグラウンドでファイルをダウンロード

デフォルトでは、wget はフォアグラウンドでファイルをダウンロードしますが、これはすべての状況で適切であるとは限りません。例として、SSH 経由でサーバーにファイルをダウンロードしたい場合があります。ただし、SSH 接続を開いたままにして、ファイルがダウンロードされるまで待ちたくはありません。バックグラウンドでファイルをダウンロードするには、-b を使用できます 次のようなオプション:

wget -b <url>

このコマンドを実行すると、wget はダウンロード ログを保存する場所を教えてくれます。このファイルは通常 wget-log という名前です 、 wget-log.1 または類似:

後でダウンロードのステータスを監視したい場合は、次の方法で行うことができます:

tail -f wget-log

これにより、ダウンロード ステータスの最後の数行が表示されます:



進行状況の表示を停止するには、いつでも Ctrl+C を押すことができます。ただし、ダウンロードの進行状況はバックグラウンドで通常どおり続行されます。

悪いネットワーク接続でのファイルのダウンロード

インターネット接続が不安定な場合、ダウンロードが失敗したり、非常に遅くなったりすることがよくあります。デフォルトでは、wget は問題が発生した場合に最大 20 回までダウンロードを試みます。ただし、インターネット接続が特に貧弱な場合は、これでは不十分な場合があります。ダウンロード速度が遅く、エラーが頻繁に発生する場合は、次を実行できます:

wget -t inf --waitretry=3 --timeout=10 --retry-connrefused <url>

まず、試行回数 (-t inf に切り替えます . wget でファイルのダウンロードに問題が発生した場合、wget は何度でもダウンロードを試みます。次に、--waitretry を使用しました 各再試行間の遅延を 3 秒に設定します。

次に、--timeout でネットワーク タイムアウトを 10 秒に設定します。 スイッチ。 wget がサーバーから 10 秒以上応答を取得しない場合、接続がダウンしていると見なされます。これにより、wget がネットワーク リクエストを再発行してファイルを取得するのに役立ちます。

最後に --retry-connrefused があります スイッチ。通常、接続拒否エラーは、サーバーが実行されていないときに発生します。ただし、信頼性の低いネットワーク接続でも発生する可能性があり、このスイッチは、接続拒否エラーが発生した場合にダウンロードを再試行するように wget に指示します。

ファイルを再帰的にダウンロード

これまで、wget を使用して特定のファイルをダウンロードする方法を見てきました。場合によっては、Web サイトの関連部分をダウンロードする方が理にかなっていることがあります。 Wget には、この目的のための「再帰的ダウンロード」機能があります。このモードでは、wget はソース ファイルをダウンロードして保存し、リンクを検索します。次に、それらのリンクをそれぞれダウンロードし、それらのファイルを保存して、それらからリンクを抽出します。デフォルトでは、このプロセスは最大 5 回続行されます。ただし、必要に応じてこの制限 (「再帰の深さ」と呼ばれる) を増減できます。

たとえば、英語版ウィキペディアのページを再帰的にダウンロードするには、次を使用します:

wget -r https://en.wikipedia.org/

これらのファイルは、サイトの名前が付けられたディレクトリに保存されます。この場合、コンテンツは というディレクトリにあります。保存された en.wikipedia.org .

「再帰の深さ」を制御するには、-l を使用します 国旗。 7 などのカスタム値を設定する場合は、次を使用します:

wget -r -l 7 https://en.wikipedia.org/

inf も使用できます 数字の代わりに。これにより、wget は無限の再帰深度で Web サイトのすべてのコンテンツを取得できます。

デフォルトでは、wget は見つかったすべてのファイルを再帰モードでダウンロードします。特定のファイル タイプのみに関心がある場合は、-A を使用してこれを行うことができます。 (受け入れる) オプション。たとえば、ウィキペディアから PNG および JPEG 画像をダウンロードする場合は、次を使用します。

wget -r https://en.wikipedia.org/ -A png,jpg,jpeg

これにより、ウィキペディアからすべてのファイル (最大 5 レベル) がダウンロードされますが、拡張子が png ではないすべてのファイルが削除されます。 、 jpg または jpeg . -R も使用できます スイッチ。たとえば、ウィキペディアから PDF ドキュメントを除くすべてのファイルを保存するには、次を使用します。

wget -r https://en.wikipedia.org/ -R pdf

ダウンロードしたファイルのリンクを変換

ファイルを再帰的にダウンロードする場合、wget はファイルをダウンロードし、変更せずに保存します。ダウンロードした Web ページには Web サイトへのリンクが含まれているため、このコピーをオフラインで使用することはできません。幸いなことに、wget にはリンク変換機能があります。これは、Web ページ上のリンクをローカル リンクに変換します。この関数を使用するには、-k を使用します 次のように切り替えます:

wget -k -r https://en.wikipedia.org/

ヘッダーとユーザー エージェント文字列を設定する

HTTP クライアント (ブラウザーや wget などのツールなど) は、クライアントを識別する HTTP ヘッダーの一部として「ユーザー エージェント文字列」を送信します。多くのウェブマスターは、この文字列に「wget」を含むリクエストをブロックするようにサーバーを構成することで、wget をブロックしています。これを回避するには、wget のユーザー エージェント文字列をカスタム文字列でオーバーライドします。ブラウザで使用されているものと同様です。ブラウザのユーザー エージェントを確認するには、echo.opera.com などのサイトにアクセスしてください。ページからユーザー エージェントをコピーし、-U で wget を実行します。 スイッチ:

wget <url> -U "<user-agent-string>"

たとえば、Mac を使用している場合、コマンドは次のようになります:

wget <url> -U "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"

Web サイトの機能をテストする開発者である場合、wget に別の HTTP ヘッダーを渡すように指示する必要がある場合があります。 --header でこれを行うことができます スイッチ。たとえば、X-Foo を送信するには 値が 123 のヘッダーで、次のコマンドを実行します:

wget <url> --header "X-Foo: 123"

複数のカスタム ヘッダーを設定する場合は、--header を使用できます。 必要に応じて切り替えてください。

保護されたファイルをダウンロード

これまでの例では、公開されているファイルのダウンロードについて見てきました。ただし、ログイン保護されたサイトからファイルをダウンロードする必要がある場合があります。このような状況では、CurlWget (Chrome) や collect (Firefox) などのブラウザー拡張機能を使用できます。ファイルをダウンロードしようとすると、これらの拡張機能によって、ファイルのダウンロードに使用できる完全な wget コマンドが生成されます。 cliget も同様に機能しますが、この記事では CurlWget についてのみ説明します。

CurlWget を Chrome にインストールしたら、拡張機能の設定に移動し、ツール オプションを「curl」から「wget」に変更します。次に、ダウンロード設定 (その他メニュー> [設定]> [詳細設定]) に移動し、[ダウンロードする前に各ファイルの保存場所を確認する] オプションを選択します。

次に、Chrome からファイルをダウンロードしてみます。ダウンロード場所を尋ねるダイアログを閉じ、ツールバーの CurlWget アイコンをクリックします。これにより、以下に示すように、ユーザー エージェント、Cookie、およびその他のヘッダーが設定された wget コマンドが提供されます。

これで、このコマンドをコピーしてターミナル ウィンドウに貼り付け、ファイルをダウンロードできます。これは、ログイン保護されたファイルをヘッドレス サーバーにダウンロードする必要がある場合に非常に役立ちます。

Wget「スパイダー」モード

Wget には、ページをフェッチするが保存しない「Web スパイダー」機能があります。これは、Web サイトのリンク切れをチェックする必要がある場合に便利です。このオプションを適切に使用するには、「再帰的ダウンロード」を有効にする必要もあります。これにより、wget がドキュメントをスキャンして参照リンクを探すことができます。

https://example.com/ をスキャンする場合 、実行:

wget --spider -r https://example.com/

wget がすべてのリンクを取得すると、次のように壊れたリンクがすべて表示されます。

このログを -o でファイルに保存することもできます 可能性:

wget --spider -r https://example.com -o wget.log

後で grep を使用して、特定のステータス コードまたはファイルのログを検索できます。たとえば、Web サイトで 301 リダイレクトを見つけるには、次を使用できます。

grep -B 301 wget.log


Cent OS

CentOS8にGitをインストールする方法

  1. Btrfs スナップショットを作成してマウントする方法

  2. シン LVM ボリュームの自動拡張を有効にする方法

  3. Linux での lvextend コマンドの例

VeeamBackupandReplicationをインストールする方法

  1. auditd を使用して特定の SYSCALL を監視する方法

  2. CentOS 7.3(LAMP)にApache、PHP 7.1、MySQLをインストールする方法

  3. CentOS7にRubyMineをインストールする方法

CentOS8/7にOpenVPNサーバーをインストールして構成する方法

  1. CentOS 7 / Ubuntu 16.04にLibreNMSをインストールする–ネットワークおよびサーバー監視ツール

  2. Centos8にApacheWebサーバーをインストールする方法

  3. CentOS8にVtigerCRMをインストールする方法