Wgetの基本的な使い方など(ユーザーエージェントの設定・POSTデータの送信)
wgetはネットからファイルを取得したりするコマンドで、http、https(SSL)、ftpが使えます。
ライセンスはGNU GPL バージョン 3(1.11以降)のフリーソフトウェアで、自由に変更、再配布ができまが、無保証です。
1.13以降はOpenSSLのライセンスが絡んでいます。
初期はGeturlという名称です。
[参考記事] WgetがFTPでダウンロードできない場合
[参考記事] WgetがSSLでダウンロードできない場合
[参考記事] wgetが遅い場合の対処法
インストール
設定ファイル
wgetの基本的な使い方
HTTPのリクエストヘッダー
ユーザーエージェントを変更するには
リファラの設定するには
Basic認証を使用するには
POSTメソッドを利用するには
POSTメソッドでファイルを送信するには
HTTP/1.1を使用するには
Proxyを使用するには
ダウンロードしたファイル名を変更するには
wgetのライセンス情報など
wgetのヘルプ
インストール
yumなら
# yum -y install wget
apt-getなら
# apt-get install wget
ソースからインストールするなら
http://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz
から取得して
# tar zxvf wget-1.15.tar.gz # cd wget-1.15 # ./configure # make # make install
設定ファイル
サーバ全体の設定は
/etc/wgetrc
ユーザごとの個別の設定は
~/.wgetrc
wgetの基本的な使い方
$ wget http://www.example.com/index.html
とすると、カレントディレクトリにindex.htmlというファイルがダウンロードされます。
ほとんどの場合、これだけ知っていれば事足ります。
HTTPのリクエストヘッダー
wgetでのリクエストヘッダーは次のようになっています。
GET / HTTP/1.0 User-Agent: Wget/1.12 (linux-gnu) Accept: */* Host: example.com Connection: Keep-Alive
Apacheのアクセスログには次のように表示されます。
xxx.xxx.xxx.xxx - - [26/Jul/2014:00:23:38 +0900] "GET / HTTP/1.0" 200 9802 0 "-" "Wget/1.12 (linux-gnu)"
ユーザーエージェントを変更するには
$ wget --user-agent="hogehogeagent" http://example.com/
リファラの設定するには
$ wget --referer="http://example.com/example.html" http://example.com/
Basic認証を使用するには
$ wget --http-user="userName" --http-passwd="password" http://example.com/
POSTメソッドを利用するには
$ wget --post-data="val1=hoge&val2=hogehoge" http://example.com/
name属性名と値を『 = 』で結び、複数ある場合は『 & 』でさらに結びます。
値に『 & 』が含まれる場合は『 %26 』、『 = 』が含まれる場合は『 %3d 』でエスケープします。
POSTメソッドでファイルを送信するには
$ wget --post-file=【ファイルのパス】 http://example.com/
HTTP/1.1を使用するには
バージョン1.13からHTTP/1.1に対応しています。
(バージョン1.12以下はHTTP/1.0です。)
HTTP/1.0でも拡張ヘッダーでHostがつくのでネームベースのバーチャルホストでも問題なく使用できます。
バージョン1.13以降のリクエストヘッダーは次のようになります。
GET / HTTP/1.1 User-Agent: Wget/1.13.4 (mingw32) Accept: */* Host: example.com Connection: Keep-Alive
Proxyを使用するには
/etc/wgetrc にProxyの設定を書きます。
http_proxy = http://xxx.xxx.xxx.xxx:port/ ftp_proxy = http://xxx.xxx.xxx.xxx:port/ https_proxy = http://xxx.xxx.xxx.xxx:port/
逆にプロキシを経由したくない場合には
$ wget --no-proxy http://example.com/
ダウンロードしたファイル名を変更するには
『-O』オプションで指定できます。
$ wget -O test http://example.com/
wgetのライセンス情報など
$ wget --version
GNU Wget 1.12 built on linux-gnu.
+digest +ipv6 +nls +ntlm +opie +md5/openssl +https -gnutls +openssl
-iri
Wgetrc:
/etc/wgetrc (system)
ロケール: /usr/share/locale
コンパイル: gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/etc/wgetrc"
-DLOCALEDIR="/usr/share/locale" -I. -I../lib -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -fno-strict-aliasing
リンク: gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
-fno-strict-aliasing -Wl,-z,relro -lssl -lcrypto
/usr/lib64/libssl.so /usr/lib64/libcrypto.so -ldl -lrt ftp-opie.o
openssl.o http-ntlm.o gen-md5.o ../lib/libgnu.a
Copyright (C) 2009 Free Software Foundation, Inc.
ライセンス GPLv3+: GNU GPL バージョン 3 あるいはそれ以降のバージョン
.
このソフトウェアはフリーソフトウェアです。自由に変更、再配布ができます。
法律が許すかぎり、全くの無保証です。
wgetのヘルプ
$ wget -h
GNU Wget 1.12, 非対話的ネットワーク転送ソフト
使い方: wget [オプション]... [URL]...
長いオプションで不可欠な引数は短いオプションでも不可欠です。
スタートアップ:
-V, --version バージョン情報を表示して終了する
-h, --help このヘルプを表示する
-b, --background スタート後にバックグラウンドに移行する
-e, --execute=COMMAND `.wgetrc'形式のコマンドを実行する
ログと入力ファイル:
-o, --output-file=FILE ログを FILE に出力する
-a, --append-output=FILE メッセージを FILE に追記する
-d, --debug デバッグ情報を表示する
-q, --quiet 何も出力しない
-v, --verbose 冗長な出力をする (デフォルト)
-nv, --no-verbose 冗長ではなくする
-i, --input-file=FILE FILE の中に指定された URL をダウンロードする
-F, --force-html 入力ファイルを HTML として扱う
-B, --base=URL HTML で入力されたファイル(-i -F)のリンクを
指定した URL の相対 URL として扱う
ダウンロード:
-t, --tries=NUMBER リトライ回数の上限を指定 (0 は無制限).
--retry-connrefused 接続を拒否されてもリトライする
-O, --output-document=FILE FILE に文書を書きこむ
-nc, --no-clobber 存在しているファイルをダウンロードで上書きしない
-c, --continue 部分的にダウンロードしたファイルの続きから始める
--progress=TYPE 進行表示ゲージの種類を TYPE に指定する
-N, --timestamping ローカルにあるファイルよりも新しいファイルだけ取得する
-S, --server-response サーバの応答を表示する
--spider 何もダウンロードしない
-T, --timeout=SECONDS 全てのタイムアウトを SECONDS 秒に設定する
--dns-timeout=SECS DNS 問い合わせのタイムアウトを SECS 秒に設定する
--connect-timeout=SECS 接続タイムアウトを SECS 秒に設定する
--read-timeout=SECS 読み込みタイムアウトを SECS 秒に設定する
-w, --wait=SECONDS ダウンロード毎に SECONDS 秒待つ
--waitretry=SECONDS リトライ毎に 1?SECONDS 秒待つ
--random-wait ダウンロード毎に 0?2*WAIT 秒待つ
--no-proxy プロクシを使わない
-Q, --quota=NUMBER ダウンロードするバイト数の上限を指定する
--bind-address=ADDRESS ローカルアドレスとして ADDRESS (ホスト名か IP) を使う
--limit-rate=RATE ダウンロード速度を RATE に制限する
--no-dns-cache DNS の問い合わせ結果をキャッシュしない
--restrict-file-names=OS OS が許しているファイル名に制限する
--ignore-case ファイル名/ディレクトリ名の比較で大文字小文字を無視する
-4, --inet4-only IPv4 だけを使う
-6, --inet6-only IPv6 だけを使う
--prefer-family=FAMILY 指定したファミリ(IPv6, IPv4, none)で最初に接続する
--user=USER ftp, http のユーザ名を指定する
--password=PASS ftp, http のパスワードを指定する
--ask-password パスワードを別途入力する
--no-iri IRI サポートを使わない
--local-encoding=ENC 指定した ENC を IRI のローカルエンコーディングにする
--remote-encoding=ENC 指定した ENC をデフォルトのリモートエンコーディングにする
ディレクトリ:
-nd, --no-directories ディレクトリを作らない
-x, --force-directories ディレクトリを強制的に作る
-nH, --no-host-directories ホスト名のディレクトリを作らない
--protocol-directories プロトコル名のディレクトリを作る
-P, --directory-prefix=PREFIX ファイルを PREFIX/ 以下に保存する
--cut-dirs=NUMBER リモートディレクトリ名の NUMBER 階層分を無視する
HTTP オプション:
--http-user=USER http ユーザ名として USER を使う
--http-password=PASS http パスワードとして PASS を使う
--no-cache サーバがキャッシュしたデータを許可しない
--default-page=NAME デフォルトのページ名を NAME に変更します
通常は `index.html' です
-E, --adjust-extension HTML/CSS 文書は適切な拡張子で保存する
--ignore-length `Content-Length' ヘッダを無視する
--header=STRING 送信するヘッダに STRING を追加する
--max-redirect ページで許可する最大転送回数
--proxy-user=USER プロクシユーザ名として USER を使う
--proxy-password=PASS プロクシパスワードとして PASS を使う
--referer=URL Referer を URL に設定する
--save-headers HTTP のヘッダをファイルに保存する
-U, --user-agent=AGENT User-Agent として Wget/VERSION ではなく AGENT を使う
--no-http-keep-alive HTTP の keep-alive (持続的接続) 機能を使わない
--no-cookies クッキーを使わない
--load-cookies=FILE クッキーを FILE から読みこむ
--save-cookies=FILE クッキーを FILE に保存する
--keep-session-cookies セッションだけで用いるクッキーを保持する
--post-data=STRING POST メソッドを用いて STRING を送信する
--post-file=FILE POST メソッドを用いて FILE の中味を送信する
--content-disposition Content-Disposition ヘッダがあれば
ローカルのファイル名として用いる (実験的)
--auth-no-challenge サーバからのチャレンジを待たずに、
Basic認証の情報を送信します。
HTTPS (SSL/TLS) オプション:
--secure-protocol=PR セキュアプロトコルを選択する (auto, SSLv2, SSLv3, TLSv1)
--no-check-certificate サーバ証明書を検証しない
--certificate=FILE クライアント証明書として FILE を使う
--certificate-type=TYPE クライアント証明書の種類を TYPE (PEM, DER) に設定する
--private-key=FILE 秘密鍵として FILE を使う
--private-key-type=TYPE 秘密鍵の種類を TYPE (PEM, DER) に設定する
--ca-certificate=FILE CA 証明書として FILE を使う
--ca-directory=DIR CA のハッシュリストが保持されているディレクトリを指定する
--random-file=FILE SSL PRNG の初期化データに使うファイルを指定する
--egd-file=FILE EGD ソケットとして FILE を使う
FTP オプション:
--ftp-user=USER ftp ユーザとして USER を使う
--ftp-password=PASS ftp パスワードとして PASS を使う
--no-remove-listing `.listing' ファイルを削除しない
--no-glob FTP ファイル名のグロブを無効にする
--no-passive-ftp "passive" 転送モードを使わない
--retr-symlinks 再帰取得中に、シンボリックリンクでリンクされた先のファイルを取得する
再帰ダウンロード:
-r, --recursive 再帰ダウンロードを行う
-l, --level=NUMBER 再帰時の階層の最大の深さを NUMBER に設定する (0 で無制限)
--delete-after ダウンロード終了後、ダウンロードしたファイルを削除する
-k, --convert-links HTML や CSS 中のリンクをローカルを指すように変更する
-K, --backup-converted リンク変換前のファイルを .orig として保存する
-m, --mirror -N -r -l 0 --no-remove-listing の省略形
-p, --page-requisites HTML を表示するのに必要な全ての画像等も取得する
--strict-comments HTML 中のコメントの処理を厳密にする
再帰ダウンロード時のフィルタ:
-A, --accept=LIST ダウンロードする拡張子をコンマ区切りで指定する
-R, --reject=LIST ダウンロードしない拡張子をコンマ区切りで指定する
-D, --domains=LIST ダウンロードするドメインをコンマ区切りで指定する
--exclude-domains=LIST ダウンロードしないドメインをコンマ区切りで指定する
--follow-ftp HTML 文書中の FTP リンクも取得対象にする
--follow-tags=LIST 取得対象にするタグ名をコンマ区切りで指定する
--ignore-tags=LIST 取得対象にしないタグ名をコンマ区切りで指定する
-H, --span-hosts 再帰中に別のホストもダウンロード対象にする
-L, --relative 相対リンクだけ取得対象にする
-I, --include-directories=LIST 取得対象にするディレクトリを指定する
--trust-server-names use the name specified by the redirection url last component.
-X, --exclude-directories=LIST 取得対象にしないディレクトリを指定する
-np, --no-parent 親ディレクトリを取得対象にしない
関連記事
- コマンドやプロセス名から検索して一括でkillする方法
- PostgreSQLでSCRAM authentication requires libpq version 10 or aboveと出るとき
- Apacheで所有権や書き込み権限があるにも関わらずPermissions deniedが出る場合
- SSDの現在のTBWを調べる方法 SSDの残り寿命 (Windows Linux CentOS)
- RAIDの種類
- ソフトウエアRAIDでストレージを構築しマウントする方法 ディスクの高速化・冗長化
- NTFSのディスクをLinuxにマウントすると読み込み専用でマウントされてしまう
- Ubuntu/Debian/Raspberry PiでChia Network(XCH)をHDDマイニングする方法
- CentOSでChia Network(XCH)をHDDマイニングする方法
- CentOSにHomeBridgeをインストールする方法
- GnuTLS: The Diffie-Hellman prime sent by the server is not acceptable (not long enough).の解決法
- Linux・WindowsでMTUを変更する方法(ジャンボフレーム)
- LinuxでPDFを画像に変換したりテキストを抽出する方法
- Logitec HDDケース(HDD4台用) ガチャベイ LHR-4BNHEU3 LGB-4BNHEU3
- Linuxにffmpegをインストールする方法 CentOS Stream
- SELinuxのpermissiveとdisableの違い
- SELinuxを無効にする方法
- SELinuxの管理で使用するsemanageコマンドをインストールする方法
- LinuxにImageMagickをインストールする方法 CentOS Stream
- Linuxでrarファイルを圧縮・解凍する方法(CentOS)
- NTFSフォーマットのストレージの読み書きが異常に遅い場合
- Linuxで接続されているUSBのバージョンを確認する方法
- Linuxでストレージの型番やシリアルを確認する方法(HDD SSD NVMe)
- CPUやストレージの温度を調べる方法(CPU HDD SSD NVMe)
- CentOS7からCentOS8へのアップグレード
- 各ストレージの速度一覧 規格速度や実効速度(HDD/SSD/M2/NVMe/USBメモリ)
- Poderosa5で「インデックスが配列の境界外です。」と出る場合の対処法(CentOS8 Ubuntu)
- マウントするときに、$MFTMirr does not match $MFT NTFS is either inconsistent, or there is a hardware faultのエラーが出る場合
- Sambaで認証パスワードなし(ゲストユーザー)でアクセスする方法
- Amazon Linux2をローカルのVirtualBoxで起動する方法
- VirtualBox Interfaceが起動していてシャットダウンができないとき
- Gitを自動的にpullする方法(常に最新の状態にする)
- Gitの最新版をインストールする方法(CentOS7に2系をインストール)
- SSHで初めて接続するホストで、接続するかどうかyes/noを聞かれないようにする
- HPのパソコンでVirtualBoxが起動しない(HP ProtectTools Security Manager)
- yumのius(iuscommunity.org)でエラーが出る場合
- iusリポジトリで公開されているパッケージの一覧
- GoogleChromeでSSL接続を強制される設定(HSTS)のキャッシュを消す方法
- phpMyAdminでログイン画面を出さずにデータベースに接続する方法
- さくらサーバ(さくらのレンタルサーバ)でcronを使ってPHPを定時実行する
- php.ini が見つからない時
- PHPでMySQLなどにPDO接続をすると、could not find driverのエラーが出る場合
- ホスト名(ドメイン)をローカルIPに名前解決させる方法(ローカルDNS不要)
- MySQLやMariaDBは標準ではログローテートされない
- SONYのnasneをLinuxにマウントする方法
- 数日おきに設定したcronの実行が1日ずれる理由
- LinuxでNTFS(Windows形式)のフォーマットをする方法
- target is busyやdevice is busyをumountする方法
- /dev/random と /dev/urandom の違い
- 2TBを超えるHDDを増設する方法(パーティション・フォーマット)
- 破損したストレージからのデータ復旧
- HDDやSSDなどのストレージをリスト形式で表示する方法
- blkidコマンドでUUIDが表示されない場合
- HDDやSSDなどのストレージのUUIDを調べる方法
- glibcを更新するとdateコマンドが新元号の令和に対応します
- cron設定ファイルの実体の保存先
- Fail2ban ログを集計して不正アクセスを防ぐ
- mvコマンドの挙動(コピーが完了したものから削除する方法)
- 『Table is marked as crashed and should be repaired』の修復方法
- PostfixサーバからGmailサーバへメールを送信できない場合の対処法
- ImageMagick更新で『PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/imagick.so'』エラーが出る場合
- 起動時に『UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.』と出た場合の修復方法
- kernel-develのインストール
- LinuxサーバでWindowsのファイルシステムNTFSを読み込む方法
- 拡張リポジトリEPELを使用する方法(インストール)
- wgetが遅い場合の対処法
- WgetがFTPでダウンロードできない場合
- WgetがSSLでダウンロードできない場合
- lsコマンドで秒を表示する方法(タイムスタンプの書式指定)
- PDO_MYSQLをインストールする方法
- PEAR・PECLをインストールする方法
- シェルスクリプトを実行すると『そのようなファイルやディレクトリはありません』や『コマンドが見つかりません』と出る場合
- 画面のバックライトを消す方法(モニタ電源を消す) vbetool
- telnetの反応がなくなった時に接続を強制的に切断する方法
- サーバの負荷や使用率などを見るコマンドの一覧
- PHPでロードアベレージを表示させる方法
- Apacheで出力されるログを変更する方法 レスポンスにかかった時間やリファラ、ユーザーエージェントを記録する
- ログをリアルタイムに表示させて監視する方法
- 起動時にネットワークを有効にする方法(eth0を起動する方法)
- IPアドレスを変更する方法
- cron実行時の標準出力のメールを飛ばさない方法(cron実行時に毎回メールを飛ばさない)
- cron実行時のPATHなどの環境変数を確認する方法
- cronのメール送信先を指定する方法(cronごとに送信先のメールアドレスを指定する方法)
- cron実行時に『/bin/sh: 〜〜: command not found』と出てcronが実行されない場合
- 『crontab -r』でcronの設定を間違って消してしまった場合の対処法
- cronを実行すると『TERM environment variable not set.』というエラーメールが飛ぶ
- Apacheから2GB以上のファイルをダウンロードしようとすると403エラーが出ます
- Linux起動時の自動ファイルシステムチェックの間隔を変更する、無効にする方法
- [warn] _default_ VirtualHost overlap on port 80, the first has precedence エラー
- yumでupdateするときにconflictsエラーが出る場合 file xxx from install of xxx-jason conflicts with file from package xx.remi
- Gitをyumでインストールする方法
- vsftpdでファイルの所有者をUID(数字)ではなくユーザー名で表示する方法 chrootするとtext_userdb_names=YESできない
- SELinuxが有効になっているサーバではvsftpdのデータ転送が使用できない
- サービスに接続できるユーザー(IP)を制限する Connection closed by foreign host.
- 1枚のNIC(ネットワークカード)に複数のIPアドレスを設定する方法(Linux)
- Apacheを起動するときに、ほかのプロセスによってポートが使用されていた場合
- PEARを更新する方法
- zend_mm_heap corrupted とは
- yum コマンドでTransaction Check Error
- yumを自動で更新チェックする、自動で更新する
- httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
- Apacheをyumでインストールする
- KNOPPIX
- ディレクトリ以下のファイル数、ファイル容量を調べる
- PHPをyumでインストールする
- Linuxでホスト名を変更する方法
- Postfixからpostmaster宛に451Server configuration errorメールが届く
- Postfixの容量制限 (main.cfの設定)
- Debianのインストール
- memcachedのインストール
- Linuxのカーネル情報やディストリビューションを調べるコマンド
- Rubyのインストール
- PostgreSQLのインストール
- PHPのインストール
- zlibのインストール
- Apacheのインストール
- MySQLのインストール
- IPアドレスを調べる
- ファイルを検索するコマンド locate (updatedbの高速化)
- スペシャルファイル
- MergeLog 複数のログファイルを時系列に並べ替える
- CentOS5のインストール
- Another app is currently holding the yum lockとは
- yumで、より新しいパッケージをインストールする方法(CentOS)
- apacheのSSL設定
- Subversionのインストール
- 毎朝午前4時に行われる動作
- /tmpや/var/tmpのファイル消えるタイミング
- ユーザーとグループ
- ログインできるユーザーに変更する
- SSHのインストール
- OpenSSL
- RFC2142で定められた「組織で用意したほうがよいメールアドレス」のガイドライン
- named.local [Bindの設定ファイル]のデフォルト
- localhost.zone [Bindの設定ファイル]のデフォルト
- named.ca [Bindの設定ファイル]のデフォルト
- named.conf [Bindの設定ファイル]のデフォルト
- vsftpd.conf [vsftpd設定ファイル]のデフォルト
- proftpd.conf [Proftpd設定ファイル]のデフォルト
- php.ini [PHP設定ファイル]のデフォルト
- main.cf [Postfix設定ファイル]のデフォルト
- sendmail.mc のデフォルト
- httpd.conf [apache設定ファイル]のデフォルト fedora
- httpd.conf [apache設定ファイル]のデフォルト
- ディレクトリの削除
スポンサーリンク





