
wgetコマンドでファイルダウンロードを自動化!cronやスクリプトを使った設定方法をプロが解説。
wgetコマンドとは?基本と使い方
wgetコマンドは、ウェブからファイルをダウンロードするための強力なコマンドラインツールです。Linux、macOS、Windowsなど、多くのオペレーティングシステムで利用できます。HTTP、HTTPS、FTPプロトコルをサポートしており、ウェブサイト全体をミラーリングしたり、大きなファイルをダウンロードしたりするのに役立ちます。
基本的な使い方は非常にシンプルです。ターミナルを開き、wget
コマンドの後にダウンロードしたいファイルのURLを指定するだけです。
wget [ダウンロードURL]
例えば、https://example.com/sample.txt
というファイルをダウンロードするには、次のコマンドを実行します。
wget https://example.com/sample.txt
これにより、sample.txt
ファイルが現在のディレクトリにダウンロードされます。
wgetコマンドは、さまざまなオプションを使用してダウンロードをカスタマイズできます。後述する便利なオプションを使うことで、より柔軟なファイルダウンロードが可能になります。
wgetコマンドの便利なオプション
wgetコマンドには、ダウンロードを効率化したり、特定の設定を行ったりするための多くのオプションがあります。ここでは、特によく使われる便利なオプションを紹介します。
-O
オプションを使用すると、ダウンロードしたファイルの保存先とファイル名を指定できます。
wget -O new_name.txt https://example.com/sample.txt
この例では、sample.txt
をnew_name.txt
という名前で保存します。
-b
オプションを使うと、wgetコマンドをバックグラウンドで実行できます。これにより、ターミナルを他の作業に利用しながらダウンロードを続けることができます。
wget -b https://example.com/large_file.zip
バックグラウンドで実行すると、ログファイルwget-log
が作成され、ダウンロードの進捗状況を確認できます。
-c
オプションは、中断されたダウンロードを再開する際に使用します。大きなファイルをダウンロードしている際に、ネットワークが切断された場合などに便利です。
wget -c https://example.com/large_file.zip
wgetは、中断された場所からダウンロードを再開します。
-r
オプションを使用すると、ウェブサイト全体を再帰的にダウンロードできます。指定したURLからリンクされているすべてのページとファイルをダウンロードします。ウェブサイトのミラーリングに役立ちます。
wget -r https://example.com
このオプションは、注意して使用する必要があります。ウェブサイトに過度の負荷をかける可能性があるため、robots.txtを尊重し、ダウンロードの深さを制限するなどの対策を講じることが重要です。
--limit-rate
オプションを使用すると、ダウンロード速度を制限できます。他のネットワークトラフィックに影響を与えないようにする場合に便利です。
wget --limit-rate=200k https://example.com/large_file.zip
この例では、ダウンロード速度を200KB/秒に制限しています。
自動ダウンロードの設定方法
wgetコマンドを自動的に実行するには、cronなどのタスクスケジューラを使用します。cronを使用すると、指定した時間間隔でコマンドを自動的に実行できます。
cronの設定を行うには、ターミナルでcrontab -e
コマンドを実行します。これにより、cronの設定ファイルが開きます。初めてcronを設定する場合は、テキストエディタの選択を求められることがあります。
設定ファイルに次の形式でタスクを追加します。
[分] [時] [日] [月] [曜日] [実行するコマンド]
例えば、毎日午前0時にhttps://example.com/data.csv
をダウンロードするには、次の行を追加します。
0 0 * * * wget https://example.com/data.csv -O /path/to/save/data.csv
上記の例では、ダウンロードしたファイルを/path/to/save/data.csv
に保存しています。必要に応じて、適切な保存先を指定してください。
cronの設定を保存すると、指定した時間になるとwgetコマンドが自動的に実行されます。
より複雑な自動化を行う場合は、シェルスクリプトやPythonスクリプトを使用することもできます。これらのスクリプトを使用すると、ダウンロードの前に特定条件の確認や、ダウンロード後のファイル処理など、より高度な処理を行うことができます。
import subprocess
def download_file(url, save_path):
try:
subprocess.run(['wget', url, '-O', save_path], check=True)
print(f'Downloaded {url} to {save_path}')
except subprocess.CalledProcessError as e:
print(f'Error downloading {url}: {e}')
# Example usage
download_file('https://example.com/data.csv', '/path/to/save/data.csv')
上記のPythonスクリプトは、subprocess
モジュールを使用してwgetコマンドを実行します。download_file
関数にURLと保存先を渡すと、ファイルをダウンロードできます。エラーが発生した場合は、エラーメッセージが表示されます。
このスクリプトをcronで定期的に実行するように設定することで、より柔軟な自動ダウンロードシステムを構築できます。
参考リンク
まとめ
wgetコマンドは、ウェブからファイルをダウンロードするための非常に強力なツールです。基本的な使い方から、便利なオプション、自動ダウンロードの設定方法までを理解することで、日々の作業を効率化することができます。cronやスクリプトと組み合わせることで、さらに高度な自動化も実現可能です。ぜひ、wgetコマンドを使いこなして、快適なファイルダウンロード環境を構築してください。