■きっかけ RSS風に更新チェックをしたいということだったので、 元のスクリプトを壊さないように、突っ込みどころを残して提示しました。 さくらのVPSを使ってシェルプログラミングをしてみよう! Labunixさんからの投稿 http://www.luyehuizi.com/archives/179 そのまま載ってしまいましたので、 これは、ちゃんと書き直さないとw。。。 そのまま修正してもつまらないので、自分仕様に載せ変えます。 ■はてなブログbetaのテキストモードバックアップ ※画像は取れません。 取得したら「new entry」の件名で、「root」ユーザ宛てにメールを送れます。 これは「`whoami`」宛の方法は提示済みなので、特に説明しません。 まあ、ちょっとしたRSSの代わりにも使えます。ということで。。。 ※自分のブログの「new entry」通知なんて、誰が欲しがるのかは置いておいて。。。 スクリプトの動きとして、「BASE」変数ファイルにURLがあれば、 ダウンロードしたテキスト本文を削除しても、2度目のダウンロードが行われない点が 「RSS風」なだけで、RSS構文は一切使ってませんのであしからず。。。 $ cat backup_hatenablog_beta.sh #!/bin/bash # Author : labunix # Description : backup http://labunix.hateblo.jp # Last Update : 2012/05/12 set -e # for proxy PROXY="/etc/profile.d/proxy.sh" test -x "$PROXY" && . "$PROXY" # for home directory echo "$HOME" | grep "`whoami`" | HOME="/home/`whoami`" cd "$HOME" || exit 1 # for Hatena Blog Beta URL HURL="labunix.hateblo.jp" test -d "$HURL" || mkdir "$HURL" cd "$HURL" || exit 1 # diff settings HDAY="`env LANG=C date '+%Y%m%d'`.log" HGET="getlist.txt" BASE="base.txt" COMP="comp.txt" test -f "$HDAY" || touch "$HDAY" test -f "$HGET" || touch "$HGET" test -f "$BASE" || touch "$BASE" test -f "$COMP" || touch "$COMP" # xml to URL list w3m -dump_source "http://${HURL}/sitemap.xml" | \ sed s/'>'/"\n"/g | grep "^http.*[0-9]" | \ awk -F\< '{print $1}' > "$COMP" # diff to URL lists diff --left-column "$BASE" "$COMP" | sed s/"> "//g | grep "^http" > "$HGET" # getlist if [ -s "$HGET" ];then for list in `cat "$HGET"`;do hatena_blogbeta=`echo "$list" | sed s%".*entry"%%g | \ awk -F\/ '{print $2$3$4"_"$5}'` echo "$list -> $hatena_blogbeta" | tee -a "$HDAY" w3m -dump "$list" > "$hatena_blogbeta" 2>> "$HDAY" done find . -mtime -0.2 -exec ls -l {} \; | mail -s "new entry" root mv "$COMP" "$BASE" unset list hatena_blogbeta else echo "Do Nothing" fi unset PROXY HOME HURL HDAY HGET BASE COMP exit 0 ■デバッグで実行したいなら。。。 $ /bin/bash -xv backup_hatenablog_beta.sh ■普通に実行したいなら。。。 $ chmod +x backup_hatenablog_beta.sh && ./backup_hatenablog_beta.sh ■githubにも置いておきました。 get_new_hatenadialy_backup git://github.com/labunix/get_new_hatenadialy_backup.git ■出来たファイル(2回目からは差分しか持ってこない) $ find labunix.hateblo.jp/ -type f -print | sort -t/ -k 2 labunix.hateblo.jp/20120109_225628 labunix.hateblo.jp/20120125_234531 labunix.hateblo.jp/20120201_225957 labunix.hateblo.jp/20120204_224407 labunix.hateblo.jp/20120215_235429 labunix.hateblo.jp/20120220_225536 labunix.hateblo.jp/20120225_223816 labunix.hateblo.jp/20120303_224721 labunix.hateblo.jp/20120304_194140 labunix.hateblo.jp/20120306_224942 labunix.hateblo.jp/20120401_034517 labunix.hateblo.jp/20120401_204538 labunix.hateblo.jp/20120402_002647 labunix.hateblo.jp/20120402_234628 labunix.hateblo.jp/20120407_191955 labunix.hateblo.jp/20120429_184047 labunix.hateblo.jp/20120430_183541 labunix.hateblo.jp/20120504_003001 labunix.hateblo.jp/20120504_155322 labunix.hateblo.jp/20120506_030620 labunix.hateblo.jp/20120506_031758 labunix.hateblo.jp/20120506_225732 labunix.hateblo.jp/20120510_144326 labunix.hateblo.jp/20120513.log labunix.hateblo.jp/base.txt labunix.hateblo.jp/comp.txt labunix.hateblo.jp/getlist.txt ■対象の元のパターンを確認。 以下と同じ構成のファイルならば、 「HURL」変数を変更するだけで、別の方のページも取得できます。 $ w3m -dump_source http://labunix.hateblo.jp/sitemap.xml | \ sed s/'>'/"\n"/g | grep "^http.*[0-9]" | awk -F\< '{print $1}' http://labunix.hateblo.jp/entry/2012/01/09/225628 http://labunix.hateblo.jp/entry/2012/01/25/234531 http://labunix.hateblo.jp/entry/2012/02/01/225957 http://labunix.hateblo.jp/entry/2012/02/04/224407 http://labunix.hateblo.jp/entry/2012/02/15/235429 http://labunix.hateblo.jp/entry/2012/02/20/225536 http://labunix.hateblo.jp/entry/2012/02/25/223816 http://labunix.hateblo.jp/entry/2012/03/03/224721 http://labunix.hateblo.jp/entry/2012/03/04/194140 http://labunix.hateblo.jp/entry/2012/03/06/224942 http://labunix.hateblo.jp/entry/2012/04/01/034517 http://labunix.hateblo.jp/entry/2012/04/01/204538 http://labunix.hateblo.jp/entry/2012/04/02/002647 http://labunix.hateblo.jp/entry/2012/04/02/234628 http://labunix.hateblo.jp/entry/2012/04/07/191955 http://labunix.hateblo.jp/entry/2012/04/29/184047 http://labunix.hateblo.jp/entry/2012/04/30/183541 http://labunix.hateblo.jp/entry/2012/05/04/003001 http://labunix.hateblo.jp/entry/2012/05/04/155322 http://labunix.hateblo.jp/entry/2012/05/06/030620 http://labunix.hateblo.jp/entry/2012/05/06/031758 http://labunix.hateblo.jp/entry/2012/05/06/225732 http://labunix.hateblo.jp/entry/2012/05/10/144326