Wget
GNU Wget は広く使われているインターネットプロトコルである HTTP, HTTPS, FTP, FTPS (1.18 以降) を使用してファイルを取得するためのフリーソフトウェアパッケージです。インタラクティブなコマンドラインツールではないため、スクリプトや cron ジョブ、X-Windows のないターミナルなどから簡単に呼び出すことができます。
インストール
pacman を使って wget パッケージをインストールしてください。AUR には git バージョンが存在します: wget-gitAUR。
wgetの代わり: mwgetAUR は、ダウンロード速度を大幅に向上させることができる、マルチスレッドのダウンロードアプリケーションです。
設定
設定は /etc/wgetrc
で行います。デフォルトの設定ファイルはドキュメントがよく整理されているだけでなく、変更する必要は基本的にありません。複雑なオプションについては man ページを見て下さい。
FTP の自動化
大抵、ネットワーク上で安全にファイルを転送したいときは SSH が使われますが、SSH で scp や rsync を使うよりも FTP の方がリソースの消費が抑えられます。FTP はセキュアではありませんが、ファイアウォールで保護されている環境で、CPU が制約されるようなシステムで巨大なデータを転送する場合、FTP を使用するのが理にかなっています。
# wget ftp://root:somepassword@10.13.X.Y//ifs/home/test/big/"*.tar" 3,562,035,200 74.4M/s in 47s
上記の例では、Wget は 3.3 GB のファイルを 74.4MB/s の速度で転送しています。
以下の利点があります:
- スクリプトに組み込める
- ssh よりも高速
- 簡単に文字列を置換できる
- globbing 機能
プロキシ
Wget は通常のプロキシ環境変数を使います。参照: プロキシ設定。
プロキシ認証機能を使うには:
$ wget --proxy-user "DOMAIN\USER" --proxy-password "PASSWORD" URL
HTML 認証フォームを使用するプロキシは利用できません。
pacman の設定
pacman で Wget を使ってプロキシ認証を自動的に行わせたい場合、/etc/pacman.conf
の [options]
セクションに Wget コマンドを記述します:
XferCommand = /usr/bin/wget --proxy-user "domain\user" --proxy-password="password" --passive-ftp -q --show-progress -c -O %o %u
使用方法
このセクションでは Wget のユースケースを紹介します。
基本的な使い方
Wget の最も一般的なユースケースはインターネットからのファイルのダウンロードでしょう。例えば、Wikipedia のヌーの画像 をダウンロードするには、以下のように実行します:
$ wget https://upload.wikimedia.org/wikipedia/commons/f/fb/Blue_Wildebeest%2C_Ngorongoro.jpg
ダウンロードするファイルの URL を既に知っている場合、ブラウザでダウンロードして適当なディレクトリに手動で移動するよりも素早くダウンロードができます。もちろん、単純な使い方以外にも、必要であればダウンロードの自動化を行うことができます。
ウェブサイトの完全なアーカイブを作成
Wget はウェブサイトの完全なアーカイブ作成を行うことができます。絶対リンクを相対リンクに変更することでリンクが切れないようにします。
$ wget -np -r -k 'http://your-url-here'
In case of a dynamic website, some additional options for conversion into static HTML are available.
$ wget -r -np -p -E -k -K 'target-url-here'
wget also provides options for bypassing download-prevention mechanisms.
$ wget -r -np -k --random-wait -e robots=off --user-agent "Mozilla/5.0" 'target-url-here'
And if third-party content is to be included in the download, -H
switch can be used alongside -r
to recurse to linked hosts.