wget + cron : wwwダウンローダを自動運転

wwwダウンローダを自動運転

目的
    1 Namazu(検索エンジン)で使用したいWebサイトをゲットする。
    2 Webサイトをゲットする作業を自動化する。

1. Webサイトを保存するディレクトリを作成

    まず最初にホームディレクトリに移動し、mkdirコマンドを使ってwebという名前のディレクトリを作成する。ま、wwwでもwebsでもなんでもよい。
    $ cd ~/
    $ mkdir web
    $ cd web

2. 目的のWebサイトをゲットする

    この簡単な1行でサイトを丸々ゲットできてしまう。相手先のことを考慮して作業しよう。
    3番目の引数はゼロです。
    $ wget -r -l 0 http://www.avant-tokyo.com/

3. 定期実行させる内容をテキストに書き込む

    そのサイトが変更される度に毎回、wgetを実行するのは面倒...ということで、cronを使って自動実行させよう。その自動実行させる作業内容をautowget.shというファイルに書き込もう。

    viを使って新たにファイルを作成する。

    $ cd ~/web
    $ vi autowget.sh

    以下のように書き込んでいく。

    autoget.sh
    #!/bin/sh
    wget -r -l 0 http://www.avant-tokyo.com/

    複数のサイトを読み込みたかったら3行目移行に追加しよう。

4. 実行形式のファイルに変更する

    新たに作ったautowget.shをchmodを使って実行形式にする。
    $ chmod a+x autowget.sh
    -rwxr-xr-x 1 namae group 61 Jul 7 15:18 autowget.sh*

5. いつ実行するかをテキストに書き込む

    またまた新しいテキストcrontab.txtを作る。今度は、何月何日何時に実行するかというタイムスケジュールを記述する。そしてその時間になったら先ほど作った実行内容テキスト書類を実行せよと書き込む。
    $ cd ~/web
    $ vi crontab.txt

    以下の内容を書き込む。

    crontab.txt
    MAILTO="" 実行ログの宛先を指定することもできる。ここでは誰にも送らない。
    15 4 * * * /home/name/web/autowget.sh

    ログメールが必要ないときは
    MAILTOの一行を記入しないと、このcrontabの所有者にログをメールする。wgetではものすごく長いメールになるので受け取りたくなかったら上のように一行書けばよい。

6. cronにお願いする

    作業内容も書いたし、実行スケジュールもできた。後は仕事人であるcrontabにお願いするだけだ。
    その前に現在crontabに何か書き込まれているか確認してみよう。
    $ crontab -l
    no crontab for name

    何もないよと言っている。
    では、早速お願いしてみよう。crontab.txtに書き込んだスケジュールを実行してくれと。

    $ crontab crontab.txt

    お願いを聞いてくれたか確認してみよう。

    $ crontab -l
    # DO NOT EDIT THIS FILE - edit the master and reinstall.
    # (crontab.txt installed on Sat Jul 7 15:27:36 2001)
    # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
    15 4 * * * /home/name/web/autowget.sh

    一番最後に先ほど書いたスケジュールが表示されていればOK。スケジュールを変更したらもう一度cronにお願い作業を実行しよう。