いちからやり直し、、、(20)ハック de 録!!(7)ファイルがなくなった番組をリストから消す

Debian HS-DHGL

第三世代 LinkStation ハックキットで 「延長対応ハック de ダブルまる録!! 外部チューナコントロールつき」が まあまあ動くようになったが、 インストールに使ったファームウェア 1.20 では、 PC-MV5xDX/U2 が切り捨てられたことを思い出して いちからやり直し。

第三世代 LinkStation ハックキットのセットアップは 一通り終わり、 KURO-RS を用いた赤外線リモコンも動くようになったので、 ハック de 録!!をセットアップしていく。

続いて ファイルがなくなった番組をリストから消す

DbAcRap のスタブ作成

slam:~# mkdir /usr/local/PCast
slam:~# echo '/usr/sbin/chroot /usr/local/buffalo $0 $*' > /usr/local/PCast/DbAcRap
slam:~# chmod +x /usr/local/PCast/DbAcRap
slam:~#

削除スクリプト

/usr/local/sbin/RemoveList.sh を作る。
slam:~# vi /usr/local/sbin/RemoveList.sh
	:
	:
slam:~# cat /usr/local/sbin/RemoveList.sh
#!/bin/sh

# Remove old contents
find /mnt/buffalo/mnt/disk1/share/videos/*.mpg -mtime +31 -print -exec ls -l {} \; -exec rm -f {} \; | nkf -e
find /mnt/buffalo/mnt/disk1/share/videos/[0-9][0-9].* -mtime +31 -print -exec ls -l {} \; -exec rm -f {} \; | nkf -e

echo

TMPFILE=/tmp/RemoveList.$$
TMPFILE2=/tmp/VideoList.$$

/usr/local/PCast/DbAcRap GetPlListBottom > $TMPFILE
ls /mnt/buffalo/mnt/disk1/share/videos/*.mpg | nkf -e > $TMPFILE2

sed -n -e 's/^.*Index=\([0-9]*\)[       ]*FileName=\(.*\)/\1 \2/p' $TMPFILE | nkf -e |
while read Index FileName
do
        grep "^/mnt/buffalo$FileName$" $TMPFILE2 > /dev/null 2>&1
        if [ $? != 0 ]
        then
                echo $FileName not found
                DataKey=`sed -n -e 's/^.*Index='$Index'[        ]*DataKey=\(.*\)/\1/p' $TMPFILE`
                /usr/local/PCast/DbAcRap DelPlKey\{$DataKey\}
        fi
done
rm $TMPFILE $TMPFILE2
slam:~#
1ヶ月以上経過したコンテンツは削除する処理を追加した。

確認

まずは、何も消さずに実行
slam:~# sh /usr/local/sbin/RemoveList.sh
find: `/mnt/buffalo/mnt/disk1/share/videos/[0-9][0-9].*': No such file or directory

slam:~# sh -x !$
sh -x /usr/local/sbin/RemoveList.sh
+ find $'/mnt/buffalo/mnt/disk1/share/videos/\351\214\262\347\224\273\343\201\256\347\242\272\350\252\215_0720.mpg' -mtime +31 -print -exec ls -l '{}' ';' -exec rm -f '{}' ';'
+ nkf -e
+ find '/mnt/buffalo/mnt/disk1/share/videos/[0-9][0-9].*' -mtime +31 -print -exec ls -l '{}' ';' -exec rm -f '{}' ';'
find: `/mnt/buffalo/mnt/disk1/share/videos/[0-9][0-9].*': No such file or directory
+ nkf -e
+ echo

+ TMPFILE=/tmp/RemoveList.29303
+ TMPFILE2=/tmp/VideoList.29303
+ /usr/local/PCast/DbAcRap GetPlListBottom
+ ls $'/mnt/buffalo/mnt/disk1/share/videos/\351\214\262\347\224\273\343\201\256\347\242\272\350\252\215_0720.mpg'
+ nkf -e
+ sed -n -e 's/^.*Index=\([0-9]*\)[     ]*FileName=\(.*\)/\1 \2/p' /tmp/RemoveList.29303
+ nkf -e
+ read Index FileName
+ grep '^/mnt/buffalo/mnt/disk1/share/videos/録画の確認_0720.mpg$' /tmp/VideoList.29303
+ '[' 0 '!=' 0 ']'
+ read Index FileName
+ rm /tmp/RemoveList.29303 /tmp/VideoList.29303
slam:~#
続いて、 /mnt/buffalo/mnt/disk1/share/videos/録画の確認_0720.mpg を消しす。
slam:~# rm /mnt/buffalo/mnt/disk1/share/videos/*.mpg
slam:~# ls /mnt/buffalo/mnt/disk1/share/videos
slam:~#
再度スクリプトを実行する。
slam:~# sh /usr/local/sbin/RemoveList.sh
find: `/mnt/buffalo/mnt/disk1/share/videos/*.mpg': No such file or directory
find: `/mnt/buffalo/mnt/disk1/share/videos/[0-9][0-9].*': No such file or directory

ls: cannot access /mnt/buffalo/mnt/disk1/share/videos/*.mpg: No such file or directory
/mnt/disk1/share/videos/録画の確認_0720.mpg not found
DelPlKey{1248043680}
[START]DelPlKey
[FINISH]DelPlKey
slam:~#
PCast の管理画面の「録画一覧」でも 「録画リストが存在しません」になっていることを確認。

cron への登録

slam:~# crontab -e
がー。nano が起動してきた。
slam:~# crontab -l
*/5 * * * * nice /bin/sh /usr/local/sbin/fancontrol 2>/dev/null 1>/dev/null

# Hack de rokku!!
20 4 * * * nice /bin/sh /usr/local/sbin/RemoveList.sh
slam:~#



HS-DHGL
バッファローダイレクト
楽天市場
Yahoo!ショッピング
ValuMore!
ムラウチドットコム


busybox に telnetd がない?
ハックの記録
LinkStation/玄箱 をハックしよう

LS-CHLシリーズ ファームウェア アップデータ Ver.1.21

Copyright (C) 2003-2009 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市