wgetユーティリティを使用すると、Linuxコマンドラインを使用してウェブからWebページ、ファイル、およびイメージをダウンロードできます。
1つのwgetコマンドを単独で使用してサイトからダウンロードしたり、入力ファイルをセットアップして複数のサイトにまたがって複数のファイルをダウンロードすることができます。
マニュアルページによると、ユーザーがシステムからログアウトしてもwgetを使うことができます。 これを行うには、nohupコマンドを使用します。
wgetユーティリティーは、接続が切断された場合でもダウンロードを再試行し、接続が戻ったときに可能であれば中断したところから再開します。
wgetを使用してWebサイト全体をダウンロードし、リンクを変換してローカルソースを指すようにすると、Webサイトをオフラインで表示できます。
wgetの機能は次のとおりです。
- HTTP、HTTPS、およびFTPを使用してファイルをダウンロードする
- ダウンロードの再開
- ダウンロードしたWebページの絶対リンクを相対URLに変換して、Webサイトをオフラインで表示できるようにする
- HTTPプロキシとCookieをサポート
- 持続的なHTTP接続をサポート
- ログオンしていなくてもバックグラウンドで実行できます
- LinuxとWindowsで動作する
wgetを使ってウェブサイトをダウンロードする方法
このガイドでは、自分のブログをダウンロードする方法を説明します。
wget www.everydaylinuxuser.com
mkdirコマンドを使用してマシン上に独自のフォルダを作成し、 cdコマンドを使用してフォルダに移動することは価値があります。
例えば:
mkdir everydaylinuxuser
cd everydaylinuxuser
wget www.everydaylinuxuser.com
結果は単一のindex.htmlファイルになります。 コンテンツはまだGoogleから引き出されており、画像やスタイルシートはすべてGoogle上に保持されているため、このファイルは単独では無用です。
フルサイトとすべてのページをダウンロードするには、次のコマンドを使用します。
wget -r www.everydaylinuxuser.com
これは、ページを最大5レベルまで再帰的にダウンロードします。
5レベルの深さでは、サイトからすべてを得るには不十分かもしれません。 -lスイッチを使用して、次のように移動するレベルの数を設定できます。
wget -r -l10 www.everydaylinuxuser.com
無限再帰が必要な場合は、次のものを使用できます。
wget -r -l inf www.everydaylinuxuser.com
また、同じものを意味する0でinfを置き換えることもできます。
まだもう一つの問題があります。 すべてのページをローカルに取得できますが、ページ内のすべてのリンクが元の場所を指しています。 したがって、ページ上のリンク間でローカルにクリックすることはできません。
この問題を回避するには、-kスイッチを使用します。このスイッチは、ページ上のすべてのリンクを、ローカルでダウンロードされた同等のものを指すように変換します。
wget -r -k www.everydaylinuxuser.com
ウェブサイトの完全なミラーを取得したい場合は、-r -kと-lスイッチを使用する必要性を取り除く次のスイッチを使います。
wget -m www.everydaylinuxuser.com
したがって、あなた自身のウェブサイトを持っている場合は、この1つの簡単なコマンドを使用して完全なバックアップを作成することができます。
バックグラウンドコマンドとしてwgetを実行する
wgetをバックグラウンドコマンドとして実行させると、ファイルがダウンロードされている間にターミナルウィンドウで作業することができます。
次のコマンドを使用します。
wget -b www.everydaylinuxuser.com
もちろん、スイッチを組み合わせることもできます。 サイトをミラーリングしながら、バックグラウンドでwgetコマンドを実行するには、次のコマンドを使用します。
wget -b -m www.everydaylinuxuser.com
これをさらに簡素化するには、次のようにします。
wget -bm www.everydaylinuxuser.com
ロギング
バックグラウンドでwgetコマンドを実行している場合、画面に送信する通常のメッセージは表示されません。
これらのメッセージをすべてログファイルに送信することで、 tailコマンドを使用していつでも進行状況を確認できます。
wgetコマンドの情報をログ・ファイルに出力するには、次のコマンドを使用します。
wget -o / path / to / mylogfile www.everydaylinuxuser.com
逆のことはもちろん、ログを全く必要とせず、画面に出力しないことです。 すべての出力を省略するには、次のコマンドを使用します。
wget -q www.everydaylinuxuser.com
複数のサイトからダウンロードする
さまざまなサイトからダウンロードする入力ファイルを設定できます。
好きなエディタやcatコマンドを使ってファイルを開き、ファイルの各行からダウンロードするサイトやリンクの一覧を表示するだけです。
ファイルを保存し、次のwgetコマンドを実行します。
wget -i / path / to / inputfile
自分のウェブサイトをバックアップしたり、列車で読むために何かをダウンロードしたりすることは別として、ウェブサイト全体をダウンロードすることはまずありません。
イメージを含む単一のURLをダウンロードしたり、zipファイル、ISOファイル、イメージファイルなどのファイルをダウンロードする可能性が高くなります。
これを念頭に置いて、次のような入力ファイルを時間のかかるものとして入力する必要はありません。
- http://www.myfileserver.com/file1.zip
- http://www.myfileserver.com/file2.zip
- http://www.myfileserver.com/file3.zip
ベースURLが常に同じになることがわかっている場合は、入力ファイルで次のように指定するだけです。
- file1.zip
- file2.zip
- file3.zip
次のようにして、wgetコマンドの一部として基本URLを指定できます。
wget -B http://www.myfileserver.com -i / path / to / inputfile
再試行オプション
入力ファイル内でダウンロードするファイルのキューを設定し、コンピュータを徹夜で実行してファイルをダウンロードした場合、午前中に降りてきて、最初のファイルに詰まっていることがわかり、一晩中再試行している。
次のスイッチを使用して、再試行回数を指定できます。
wget -t 10 -i / path / to / inputfile
上記のコマンドを-Tスイッチと組み合わせて使用すると、次のようにタイムアウトを秒単位で指定できます。
wget -t 10 -T 10 -i / path / to / inputfile
上記のコマンドは10回再試行され、ファイル内のリンクごとに10秒間接続を試みます。
遅いブロードバンド接続で4ギガバイトのファイルの75%を部分的にダウンロードした場合には、接続が途絶えるだけでかなり迷惑になります。
wgetを使用して、ダウンロードを停止した場所から再試行するには、次のコマンドを使用します。
wget -c www.myfileserver.com/file1.zip
あなたがサーバーを叩いている場合、ホストはあまり好きではないかもしれませんし、あなたの要求をブロックするか、単に殺すかもしれません。
次のように、各検索の待機時間を指定する待機期間を指定できます。
wget -w 60 -i / path / to / inputfile
上記のコマンドは、ダウンロードごとに60秒間待機します。 これは、単一のソースからたくさんのファイルをダウンロードする場合に便利です。
しかし、いくつかのウェブホストは、周波数を見つけるかもしれないとにかくあなたをブロックします。 待機時間をランダムにして、次のようにプログラムを使用していないように見えるようにすることができます。
wget --random-wait -i / path / to / inputfile
ダウンロード制限の保護
多くのインターネットサービスプロバイダーは、ブロードバンド利用のダウンロード制限を適用しています。
ダウンロード制限を払わないようにクォータを追加することができます。 あなたは次の方法でそれを行うことができます:
wget -q 100m -i / path / to / inputfile
-qコマンドは単一のファイルでは機能しません。
したがって、サイズが2ギガバイトのファイルをダウンロードした場合、-q 1000mを使用してもファイルのダウンロードは停止しません。
クォータは、サイトから再帰的にダウンロードする場合、または入力ファイルを使用する場合にのみ適用されます。
セキュリティを守る
一部のサイトでは、ダウンロードするコンテンツにアクセスするためにログインする必要があります。
次のスイッチを使用して、ユーザー名とパスワードを指定できます。
wget --user = yourusername --password = yourpassword
誰かがpsコマンドを実行すると、あなたのユーザ名とパスワードを見ることができるマルチユーザシステムに注意してください。
その他のダウンロードオプション
デフォルトでは、-rスイッチはコンテンツを再帰的にダウンロードし、そのままディレクトリを作成します。
次のスイッチを使用して、すべてのファイルを単一のフォルダにダウンロードできます。
wget -nd -r
これとは反対に、次のコマンドを使用してディレクトリを作成することができます。
wget -x -r
特定のファイルタイプをダウンロードする方法
サイトから再帰的にダウンロードしたいが、mp3やpngなどの特定のファイルタイプだけをダウンロードしたい場合は、次の構文を使用することができます:
wget -A "* .mp3" -r
これの逆は、特定のファイルを無視することです。 おそらく、実行ファイルをダウンロードしたくないかもしれません。 この場合、次の構文を使用します。
wget -R "* .exe" -r
クリゲ
cligetと呼ばれるFirefoxアドオンがあります。 これを次の方法でFirefoxに追加することができます。
https://addons.mozilla.org/en-US/firefox/addon/cliget/にアクセスし、[Firefoxに追加]ボタンをクリックします。
表示されたら、インストールボタンをクリックします。 Firefoxを再起動する必要があります。
cligetを使用するには、ダウンロードするページまたはファイルにアクセスし、右クリックします。 コンテキストメニューがcligetと表示され、 "wgetにコピーする"と "カールにコピーする"というオプションがあります。
"wgetにコピーする"オプションをクリックし、ターミナルウィンドウを開き、右クリックして貼り付けます。 適切なwgetコマンドがウィンドウに貼り付けられます。
基本的には、コマンドを自分で入力する必要がありません。
概要
膨大な数のオプションとスイッチとしてのwgetコマンド。
したがって、端末ウィンドウに次のように入力して、wgetのマニュアルページを読む価値があります:
マンwget