GNU/Linux >> Linux の 問題 >  >> Linux

15の素晴らしい例を含む究極のWgetダウンロードガイド

wget ユーティリティは、インターネットからファイルをダウンロードするための最良のオプションです。 wget は、大きなファイルのダウンロード、再帰的なダウンロード、非対話型のダウンロード、複数のファイルのダウンロードなど、複雑なダウンロードの状況をほぼすべて処理できます。

この記事では、 wget の使用方法を確認します。 15 のすばらしい wget の例を使用して、さまざまなダウンロード シナリオに対応します。

1. wget で単一ファイルをダウンロード

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

$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

ダウンロード中は、進行状況バーに次の情報が表示されます:

  • ダウンロード完了の割合 (例:以下に示す 31%)
  • これまでにダウンロードされた総バイト数 (例:以下に示す 1,213,592 バイト)
  • 現在のダウンロード速度 (例:以下に示すように 68.2K/秒)
  • ダウンロードの残り時間 (例:以下に示す eta 34 秒)

ダウンロード中:

$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
Saving to: `strx25-0.9.2.1.tar.bz2.1'

31% [=================> 1,213,592   68.2K/s  eta 34s

ダウンロード完了:

$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
Saving to: `strx25-0.9.2.1.tar.bz2'

100%[======================>] 3,852,374   76.8K/s   in 55s    

2009-09-25 11:15:30 (68.7 KB/s) - `strx25-0.9.2.1.tar.bz2' saved [3852374/3852374]

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

デフォルトでは、wget は最後のスラッシュの後の最後の単語からファイル名を選択しますが、これは常に適切であるとは限りません。

不正解: 次の例では、download_script.php?src_id=7701 という名前のファイルをダウンロードして保存します。

$ wget http://www.vim.org/scripts/download_script.php?src_id=7701

ダウンロードしたファイルは zip 形式ですが、以下のようにファイルに保存されます。

$ ls
download_script.php?src_id=7701

正解: この問題を修正するには、-O オプションを使用して出力ファイル名を次のように指定します。

$ wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701

3. wget –limit-rate を使用してダウンロード速度/ダウンロード速度を指定

wget の実行中、デフォルトでは可能な帯域幅をすべて占有しようとします。これは、本番サーバーで巨大なファイルをダウンロードしている場合には受け入れられない可能性があります。そのため、以下に示すように –limit-rate を使用してダウンロード速度を制限することができます。

次の例では、ダウンロード速度が 200k に制限されています

$ wget --limit-rate=200k http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

4. wget -c を使用して不完全なダウンロードを続行

以下に示すように、wget -c オプションを使用して、途中で停止したダウンロードを再開します。

$ wget -c http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

これは、途中で中断された非常に大きなファイルのダウンロードを開始した場合に非常に役立ちます。ダウンロード全体を再度開始する代わりに、オプション -c を使用して中断された場所からダウンロードを開始できます

注: ダウンロードが途中で停止した場合、オプション -c なしで再度ダウンロードを再開すると、以前の名前のファイルが既に存在するため、wget は自動的にファイル名に .1 を追加します。 .1 のファイルが既に存在する場合、最後に .2 のファイルをダウンロードします。

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

大量のダウンロードの場合は、以下に示すように wget オプション -b を使用してダウンロードをバックグラウンドに置きます。

$ wget -b http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
Continuing in background, pid 1984.
Output will be written to `wget-log'.

ダウンロードが開始され、シェル プロンプトが表示されます。以下に示すように、tail -f を使用してダウンロードのステータスをいつでも確認できます。

$ tail -f wget-log
Saving to: `strx25-0.9.2.1.tar.bz2.4'

     0K .......... .......... .......... .......... ..........  1% 65.5K 57s
    50K .......... .......... .......... .......... ..........  2% 85.9K 49s
   100K .......... .......... .......... .......... ..........  3% 83.3K 47s
   150K .......... .......... .......... .......... ..........  5% 86.6K 45s
   200K .......... .......... .......... .......... ..........  6% 33.9K 56s
   250K .......... .......... .......... .......... ..........  7%  182M 46s
   300K .......... .......... .......... .......... ..........  9% 57.9K 47s

また、tail コマンドを効果的に使用して複数のファイルを表示する方法については、以前のマルチテールの記事を必ず確認してください。

6.ユーザー エージェントをマスクし、wget –user-agent を使用してブラウザのように wget を表示

一部の Web サイトでは、ユーザー エージェントがブラウザーではないことを識別して、そのページのダウンロードを禁止できます。そのため、以下に示すように、–user-agent オプションを使用してユーザー エージェントをマスクし、ブラウザのように wget を表示できます。

$ wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" URL-TO-DOWNLOAD

7. wget –spider を使用してダウンロード URL をテストする

スケジュールされたダウンロードを行う場合は、スケジュールされた時間にダウンロードが正常に行われるかどうかを確認する必要があります。これを行うには、スケジュールから行を正確にコピーし、チェックする –spider オプションを追加します。

$ wget --spider DOWNLOAD-URL

指定された URL が正しい場合、

$ wget --spider download-url
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.

これにより、スケジュールされた時間にダウンロードが成功することが保証されます。ただし、間違った URL を指定すると、次のエラーが発生します。

$ wget --spider download-url
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 404 Not Found
Remote file does not exist -- broken link!!!

スパイダー オプションは、次のシナリオで使用できます:

  • ダウンロードをスケジュールする前に確認してください。
  • 一定の間隔でウェブサイトが利用可能かどうかを監視する
  • ブックマークからページのリストを確認し、まだ存在するページを見つけます。

8. wget –tries を使用して再試行の合計回数を増やす

インターネット接続に問題があり、ダウンロード ファイルが大きい場合、ダウンロードに失敗する可能性があります。デフォルトでは、wget はダウンロードを成功させるために 20 回再試行します。

必要に応じて、以下に示すように –tries オプションを使用して再試行回数を増やすことができます。

$ wget --tries=75 DOWNLOAD-URL

9. Wget -i を使用して複数のファイル / URL をダウンロード

まず、すべてのダウンロード ファイルまたは URL を次のテキスト ファイルに保存します。

$ cat > download-file-list.txt
URL1
URL2
URL3
URL4

次に、以下に示すように -i オプションを使用して wget の引数として download-file-list.txt を指定します。

$ wget -i download-file-list.txt

10. wget –mirror を使用して完全な Web サイトをダウンロードする

以下は、Web サイト全体をダウンロードしてローカルで表示できるようにするときに実行するコマンド ラインです。

$ wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
  • –mirror :ミラーリングに適したオプションをオンにします。
  • -p :特定の HTML ページを適切に表示するために必要なすべてのファイルをダウンロードします。
  • –convert-links :ダウンロード後、ドキュメント内のリンクをローカル表示用に変換します。
  • -P ./LOCAL-DIR :すべてのファイルとディレクトリを指定したディレクトリに保存します。

11. wget –reject を使用してダウンロード中に特定のファイル タイプを拒否する

役に立つ Web サイトを見つけましたが、画像をダウンロードしたくない場合は、次のように指定できます。

$ wget --reject=gif WEBSITE-TO-BE-DOWNLOADED

12. wget -o を使用して stderr の代わりにログ ファイルにメッセージを記録する

ログを端末ではなくログ ファイルにリダイレクトする場合。

$ wget -o download.log DOWNLOAD-URL

13. wget -Q を使用して、一定のサイズを超えたらダウンロードを終了します

5 MB を超えたときにダウンロードを停止したい場合は、次の wget コマンド ラインを使用できます。

$ wget -Q5m -i FILE-WHICH-HAS-URLS

注: 単一の URL をダウンロードする場合、この割り当ては有効になりません。これは、クォータ サイズに関係なく、1 つのファイルを指定するとすべてがダウンロードされます。この割り当ては、再帰的なダウンロードにのみ適用されます。

14. wget -r -A を使用して特定のファイル タイプのみをダウンロードする

これは次の状況で使用できます:

  • ウェブサイトからすべての画像をダウンロード
  • ウェブサイトからすべての動画をダウンロード
  • ウェブサイトからすべての PDF ファイルをダウンロード
$ wget -r -A.pdf http://url-to-webpage-with-pdfs/

15. wget による FTP ダウンロード

以下に示すように、wget を使用して FTP ダウンロードを実行できます。

Wget を使用した匿名 FTP ダウンロード

$ wget ftp-url

ユーザー名とパスワード認証で wget を使用した FTP ダウンロード。

$ wget --ftp-user=USERNAME --ftp-password=PASSWORD DOWNLOAD-URL

この記事が気に入ったら、おいしいまたはつまずきでブックマークしてください。


Linux
  1. LinuxでのWgetコマンドと例

  2. Linuxでファイルをダウンロードするための5つのWgetコマンドの例。

  3. 15 の例を含む究極の Bash Array チュートリアル

  1. Linuxの基本:Wgetを使用してシェルにファイルをダウンロードする方法

  2. Wgetコマンドのトップ10ユースケース(例付き)

  3. Bash の「test」コマンドでの「&&」と「&」の比較

  1. 例でwgetコマンドを使用する方法

  2. 例を使用してLinuxsleepコマンドを使用する方法

  3. LinuxでのWgetコマンドと例