Linuxでの10Wget(Linuxファイルダウンローダー)コマンドの例


この投稿では、HTTP、HTTPS、FTPなどの広く使用されているプロトコルを使用してワールドワイドウェブ(WWW)からファイルを取得するwgetユーティリティを確認します。 Wgetユーティリティは無料で入手できるパッケージであり、ライセンスはGNUGPLライセンスの下にあります。このユーティリティは、WindowsやMACOSを含むUnixライクなオペレーティングシステムをインストールできます。これは非対話型のコマンドラインツールです。 Wgetの堅牢性の主な特徴。低速または不安定なネットワーク接続で機能するように設計されています。ネットワークに問題が発生した場合、Wgetは中断されたところから自動的にダウンロードを開始します。また、ファイルを再帰的にダウンロードします。ファイルが完全に取得されるまで試行を続けます。

まず、次のコマンドを使用して、Linuxボックスにwgetユーティリティがすでにインストールされているかどうかを確認します。

# rpm -qa wget

wget-1.12-1.4.el6.i686

wgetがまだインストールされていない場合は、YUMコマンドを使用してインストールしてください。または、http://ftp.gnu.org/gnu/wget/からバイナリパッケージをダウンロードすることもできます。

# yum -y install wget

ここで使用される-yオプションは、パッケージをインストールする前に確認プロンプトが表示されないようにするためのものです。その他のYUMコマンドの例とオプションについては、Linuxパッケージ管理用の20のYUMコマンドの例に関する記事をお読みください。

1.単一ファイルのダウンロード

このコマンドは単一のファイルをダウンロードし、現在のディレクトリに保存します。また、ダウンロード中のダウンロードの進行状況、サイズ、日時も表示されます。

# wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

--2012-10-02 11:28:30--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: wget-1.5.3.tar.gz
100%[===================================================================================>] 446,966     60.0K/s   in 7.4s
2012-10-02 11:28:38 (58.9 KB/s) - wget-1.5.3.tar.gz

2.別の名前のファイルをダウンロードします

-O(大文字)オプションを使用して、異なるファイル名のファイルをダウンロードします。ここでは、以下に示すようにwget.zipファイル名を付けています。

# wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz

--2012-10-02 11:55:54--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: wget.zip
100%[===================================================================================>] 446,966     60.0K/s   in 7.5s
2012-10-02 11:56:02 (58.5 KB/s) - wget.zip

3.httpおよびftpプロトコルで複数のファイルをダウンロードします

ここでは、HTTPおよびFTPプロトコルとwgetコマンドを1つずつ使用して複数のファイルをダウンロードする方法を説明します。

# wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig

--2012-10-02 12:11:16--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: wget-1.5.3.tar.gz

100%[===================================================================================>] 446,966     56.7K/s   in 7.6s

2012-10-02 12:11:29 (57.1 KB/s) - wget-1.5.3.tar.gz

--2012-10-02 12:11:29--  ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig
           => wget-1.10.1.tar.gz.sig

Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /gnu/wget ... done.
==> SIZE wget-1.10.1.tar.gz.sig ... 65
==> PASV ... done.    ==> RETR wget-1.10.1.tar.gz.sig ... done.
Length: 65 (unauthoritative)

100%[===================================================================================>] 65          --.-K/s   in 0s

2012-10-02 12:11:33 (2.66 MB/s) - wget-1.10.1.tar.gz.sig

FINISHED --2012-10-02 12:11:33--
Downloaded: 2 files, 437K in 7.6s (57.1 KB/s)

4.ファイルからURLを読み取ります

URLの数をテキストファイルに保存し、-iオプションを使用してダウンロードできます。以下に、ダウンロードする一連のURLを配置するwgetディレクトリの下にtmp.txtを作成しました。

# wget -i /wget/tmp.txt

--2012-10-02 12:34:12--  http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.10.1.tar.gz.sig
Resolving ftp.gnu.org... 208.118.235.20, 2001:4830:134:3::b
Connecting to ftp.gnu.org|208.118.235.20|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 446966 (436K) [application/x-gzip]
Saving to: wget-1.10.1.tar.gz.sig

100%[===================================================================================>] 446,966     35.0K/s   in 10s

2012-10-02 12:34:23 (42.7 KB/s) - wget-1.10.1.tar.gz.sig

--2012-10-02 12:34:23--  http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
Resolving mirrors.hns.net.in... 111.91.91.34, 2401:4800::111:91:91:34
Connecting to mirrors.hns.net.in|111.91.91.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1761607680 (1.6G) [application/octet-stream]
Saving to: CentOS-6.3-x86_64-LiveDVD.iso

 45%[==========================================                                          ] 1,262,000   51.6K/s  eta 8h 17m

5.未完了のダウンロードを再開します

大きなファイルのダウンロードの場合、ダウンロードが停止することがあるかもしれません。その場合、-cオプションで中断したのと同じファイルのダウンロードを再開できます。ただし、-cオプションを指定せずにファイルのダウンロードを開始すると、wgetはファイルの最後に.1拡張子を追加し、新規ダウンロードと見なします。したがって、大きなファイルをダウンロードするときは、-cスイッチを追加することをお勧めします。

# wget -c http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso

--2012-10-02 12:46:57--  http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
Resolving mirrors.hns.net.in... 111.91.91.34, 2401:4800::111:91:91:34
Connecting to mirrors.hns.net.in|111.91.91.34|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 1761607680 (1.6G), 1758132697 (1.6G) remaining [application/octet-stream]
Saving to: CentOS-6.3-x86_64-LiveDVD.iso

 51% [=================================================                                  ] 3,877,262   47.0K/s  eta 10h 27m ^

6.ファイル名に.1が追加されたファイルをダウンロードします

-cオプションを指定せずにダウンロードを開始する場合は、ファイルの最後に.1を追加し、新規ダウンロードを開始します。 .1がすでに存在する場合は、ファイルの最後に.2を追加します。

# wget http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso

--2012-10-02 12:50:49--  http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
Resolving mirrors.hns.net.in... 111.91.91.34, 2401:4800::111:91:91:34
Connecting to mirrors.hns.net.in|111.91.91.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1761607680 (1.6G) [application/octet-stream]
Saving to: CentOS-6.3-x86_64-LiveDVD.iso.1

 18% [==================                                                                 ] 172,436     59.2K/s   

ファイルの最後に.1拡張子が追加されたサンプルファイルを参照してください。

# ls -l CentOS*

-rw-r--r--. 1 root root 3877262 Oct  2 12:47 CentOS-6.3-x86_64-LiveDVD.iso
-rw-r--r--. 1 root root  181004 Oct  2 12:50 CentOS-6.3-x86_64-LiveDVD.iso.1

7.バックグラウンドでファイルをダウンロードします

-bオプションを使用すると、ダウンロード開始直後にバックグラウンドでダウンロードを送信でき、ログは/wget/log.txtファイルに書き込まれます。

# wget -b /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso

Continuing in background, pid 3550.

8.ダウンロード速度の制限を制限する

オプション–limit-rate u003d 100kを使用すると、ダウンロード速度の制限は100kに制限され、ログは以下に示すように/wget/log.txtの下に作成されます。

# wget -c --limit-rate=100k  /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso

/wget/log.txt: Scheme missing.
--2012-10-02 13:16:21--  ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso
           => debian-6.0.5-i386-DVD-1.iso
esolving ftp.iinet.net.au... 203.0.178.32
Connecting to ftp.iinet.net.au|203.0.178.32|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /debian/debian-cd/6.0.5/i386/iso-dvd ... done.
==> SIZE debian-6.0.5-i386-DVD-1.iso ... 4691312640
==> PASV ... done.    ==> REST 2825236 ... done.
==> RETR debian-6.0.5-i386-DVD-1.iso ... done.
Length: 4688487404 (4.4G), 4685662168 (4.4G) remaining (unauthoritative)

 0% [                                                                                    ] 3,372,160   35.5K/s  eta 28h 39m

9.ユーザー名とパスワードによる制限されたFTPおよびHTTPダウンロード

オプション–http-user u003d username、–http-password u003d password&–ftp-user u003d username、–ftp-password u003d passwordを使用すると、以下に示すように、パスワードが制限されたHTTPまたはFTPサイトをダウンロードできます。

# wget --http-user=narad --http-password=password http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-LiveDVD.iso
# wget --ftp-user=narad --ftp-password=password ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso

10.wgetバージョンを見つけてヘルプ

オプション–versionおよび–helpを使用すると、必要に応じてバージョンとヘルプを表示できます。

# wget --version

# wget --help

この記事では、Linuxのwgetコマンドと日常の管理タスクのオプションについて説明しました。あなたがそれについてもっと知りたいのなら、manwgetをしてください。コメントボックスで共有するか、何か見落としている場合はお知らせください。