これまでは手操作で 「録画失敗」というステータスの番組を消していたのだが、 お休み中は不在にすることもでもあり、 これを機会に自動で消すようにスクリプトを書くことにした。
sil:/usr/local/sbin# cat CheckList.sh
#!/bin/sh
TMPFILE=/tmp/CheckList.$$
/usr/local/PCast/DbAcRap GetMergeListBottom > $TMPFILE
sed -n -e 's/^.*Index=\([0-9]*\) Status=\([0-9]*\)$/\1 \2/p' $TMPFILE |
while read Index Status
do
        # echo $Index $Status
        case $Status in
        0)      # 待機中
                #echo '待機中'
                ;;
        1)      # 予約録画中
                #echo '予約録画中'
                ;;
        2)      # 録画停止中
                #echo '録画停止中'
                ;;
        3)      # 録画失敗
                echo '録画失敗'
                # [DATA]Index=0010 TittleName=【★】桑原征平のおもしろ京都検定
                sed -n -e 's/^.*Index='$Index' TittleName=\(.*\)$/\1/p' $TMPFILE
                # [DATA]Index=0010 DeviceId=0
                DEVICE=`sed -n -e 's/^.*Index='$Index' DeviceId=\(.*\)$/\1/p' $TMPFILE`
                # [DATA]Index=0010 DataKey=1210423200
                KEY=`sed -n -e 's/^.*Index='$Index' DataKey=\(.*\)$/\1/p' $TMPFILE`
                echo /usr/local/PCast/DbAcRap DelKey\{$DEVICE\}\{$KEY\}
                /usr/local/PCast/DbAcRap DelKey\{$DEVICE\}\{$KEY\}
                ;;
        *)
                #echo '不明'
                ;;
        esac
done
rm $TMPFILE
sil:/usr/local/sbin#
sil:/usr/local/sbin# sh CheckList.sh
録画失敗
地球に暮らす子どもたち[再]イタリア
/usr/local/PCast/DbAcRap DelKey{2}{1210423200}
sil:/usr/local/sbin# 
『地球に暮らす子どもたち[再]イタリア』が
予約一覧に出てこないことを確認。
sil:/usr/local/sbin# crontab -e : : : sil:/usr/local/sbin# crontab -l : : 3,33 * * * * nice /bin/sh /usr/local/sbin/CheckList.sh : : sil:/usr/local/sbin#これで、自動的に消してくれるはず。
悪あがきとして、
・毎朝 4:30 ~ 4:45 の間、オーディオタイマを使って
キャプチャボックスの電源を落としてリセット
・毎朝 4:46 に cron で HS-DHGL をリブート
と毎朝リフレッシュしているが、、、
それでも録画失敗は発生する。
録画失敗が発生したらリブートするよう 上記スクリプトを修正した方が良いかも知れない。
    
  | 
| 
← ファームウェア 1.13 のスリープ機能(2)  | 
ハックの記録 LinkStation/玄箱 をハックしよう  | 
→ 業務連絡:お休みをいただきます  |