こんばんは、ユリウスです。
FTPサイトからダウンロードする機会は意外と多いものですが、
ファイルが多い時の手動ダウンロードは結構面倒だったりします。
そこで、ダウンロードの自動化!
wget や lftp を利用すると、大規模なファイルツリーでも
楽にダウンロードできます。
それでは、FTPサイトのディレクトリを自分のPCに
ダウンロードしてみましょう。
(下のURLは適宜読み替えて下さい)
[wget の場合]
$ wget -r -c ftp://ftp.site.jp/target/directory/
-r はファイルツリーを再帰的にたどるオプション、
-c はレジュームを行うオプションです。
※他にも、ダウンロード速度に制限を掛ける
–limit-rate オプションや、ダウンロード中に
少し待ち時間を入れる –wait オプションなど、
いろいろなオプションがあります。
詳細なヘルプは、端末にて「man wget」と入力してご覧下さい。
[lftp の場合]
$ lftp -e ‘mirror . .’ ftp://ftp.site.jp/target/directory/
-e は FTPログイン後に指定したコマンドを実行するオプションです。
mirror は、ファイルツリーのミラーリングを行うコマンドです。
※他にも、指定した時間にコマンドを実行する at コマンドや、
ファイル転送指令をいったんキューにためる queue コマンドなど、
いろいろなコマンドがあります。
詳細なヘルプは、端末にて「man lftp」と入力してご覧下さい。
ここまでお読みになられて、
「いちいちコマンドを打つのは面倒じゃない?」
「グラフィカルな操作ができる gFTP や FileZilla の方が楽じゃない?」
などの疑問を持たれた方もいらっしゃると思います。
ごもっともな疑問ですが…。
実は、コマンドでダウンロードを実行できるようにしたのは、
定期的に自動ダウンロードを実行するための布石 なのです!
Linuxには、cron という仕組みがあり、コマンドを指定した時間に
実行させることができるのです。(草木も眠る丑三つ時でも全然OKです)
これを応用すると…。
[cron の設定]
$ crontab -e
0 5 * * * /usr/bin/lftp -e ‘mirror . .’ ftp://ftp.site.jp/target/directory/
この内容を保存すると、cron の設定が有効になり…、
毎日午前5時に、自動的にFTPサイトに接続してミラーリングを行ってくれます。
自分で見に行く必要はまったくありません。
今回は、ファイルダウンロードの自動化を取り上げました。
このように簡単に自動化できるのは、Linux の大きな強みといえます。
次回は、自動化のキーパーソン、cron について紹介したいと思います。