Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

wget をマスターする:15 の強力なダウンロード例

wget をマスターする:15 の強力なダウンロード例 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/s)
  • ダウンロードの残り時間 (例:以下に示す 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 コマンドを効果的に使用して複数のファイルを表示する方法については、以前の multitail の記事を必ず参照してください。

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 をダウンロードする場合には影響しません。つまり、クォータ サイズに関係なく、単一のファイルを指定するとすべてがダウンロードされます。この割り当ては、再帰的ダウンロードにのみ適用されます。

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

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

  • Web サイトからすべての画像をダウンロード
  • ウェブサイトからすべてのビデオをダウンロードする
  • Web サイトからすべての 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

この記事が気に入ったらデリシャスまたはStumble でブックマークしてください。


  1. fdupes:Linux 上の重複ファイルを検索して削除するための効率的なコマンドライン ツール

    重複ファイルを検索して置換することは、ほとんどのコンピュータ ユーザーにとって一般的な要件です。重複ファイルを見つけて削除するのは、時間と忍耐を必要とする面倒な作業です。マシンが GNU/Linux を搭載している場合は、「fdupes」のおかげで、重複ファイルを見つけるのが非常に簡単になります。 ユーティリティ。 Fdupes – Linux での重複ファイルの検索と削除 fdupes とは何ですか? フデュプス はAdrian Lopez によって書かれた Linux ユーティリティです。 C で MIT ライセンスに基づいてリリースされたプログラミング言語。アプリケーションは、指定さ

  2. Linux ln –Linuxでシンボリックリンクを作成する方法[Bashコマンドの例]

    シンボリックリンク(シンボリック)は、Linuxの他のファイルまたはディレクトリ(フォルダ)を指すファイルの一種です。 lnを使用して、シンボリックリンク(シンボリック)を作成できます。 コマンドラインでコマンドを実行します。 シンボリックリンクは、ファイルまたはディレクトリへのショートカットとして機能するため、便利です。 この記事では、lnの使用方法について説明します。 ファイルまたはディレクトリへのシンボリックリンクを作成するコマンド。 Linuxのソフトリンクとハードリンクの違いは何ですか? ソフトリンクまたはシンボリックリンクは、システム上の元のファイルを指します。