LinuxコマンドラインでHTTPやFTPのファイルを取得するコマンドにwgetがある。
このコマンドはオプションが豊富で、連動シェルスクリプトを書く場合にも便利に使える。
例えば、私のシステムではこんなスクリプトを毎日走らせている。
TODAY=
date '+%Y%m%d'
SITENUM=001
wget -q -r -np -nd –accept=”*$TODAY*.csv” http://hosts-$SITENUM.xn--ockc3f5a.com/export/
1行目はTODAYと言う変数にdateコマンドでYYYYMMDD形式の日付を代入している。
2行目は同様にサイト番号。
で、3行目が本題のwgetで、-qは標準出力にメッセージを出さない(quiet)指定(cronで走らせると、標準出力にメッセージがあればメールで送信するので、黙らせている)
-rは、ページのリンク先をたどる設定。 exportディレクトリはIP制限の上でIndexesを有効にしているので、export/を表示すると直下のファイルリストが表示されるので、このファイルを取得する為の設定。
-npは、指定したディレクトリよりも上位を取得しない設定。 Indexesで表示すると、上位ディレクトリへのリンクが現れるためこれで制限している。
-ndは、ディレクトリを作らない設定。 通常、wget -rはホストの構造と同じ形にディレクトリを作るが、ファイルを作業ディレクトリに全て落としたいのでこの設定を入れている。
–acceptは受け入れるアドレスの形式で、この場合当日の日付が含まれるcsvファイルを受け取るという指定をしている。
最後に取得するアドレスを指定している。
サイト内のリンクを辿ってくれるので、キャッシュシステムを使っているサイトで、cronで
cd /tmp
rm /tmp/site-cache/*
wget -r -q http://wp.xn--ockc3f5a.com/
rm -rf wp.xn--ockc3f5a.com
みたいなのを組んでおくと、1時間経過したキャッシュデータを削除して、サイトを巡ってキャッシュを生成させたりするのにも使える。
HTTPの認証にも対応しているので、お手軽にサイト間でデータ転送をさせたい場合に便利なコマンドだ。
(172)