2017年10月23日月曜日

Chinachuの録画ファイルを自動削除

Chinachu自体にも自動的にファイルを削除する機能はありますが、
あくまでも容量が足りなくなったときのみの機能なので、
1週間以前の録画ファイルを削除するスクリプトを作成してみました。

#!/bin/bash

day_count=7
tsdir="/mnt/storage/share/tv/"
logdir="/opt/chinachu/log/tsdel/"

nowstr=`date +%y%m%d%H%M%S`
logfile=${logdir}${nowstr}.log
datestr=`date --date "${day_count} days ago" +%y%m%d`

echo "------- TS File Delete Start -------" >> ${logfile}
count=0
for filepath in ${tsdir}*; do
  filename=`basename ${filepath}`
  filename=${filename:1:6}
  if [ ${filename} -lt ${datestr} ] ; then
    rm -fv "${filepath}" >> ${logfile} 2>&1
    let count++
  fi
done

echo "------- ${count} Files Deleted. -------" >> ${logfile}

if [ $count -gt 0 ] ; then
  echo "------- Chinachu Cleanup Start -------" >> ${logfile}
  expect -c "
    set timeout 5
    spawn /opt/chinachu/chinachu cleanup
    expect \"\[Y/n\]?\ \"
    send \"Y\n\"
    expect \"$\"
    exit 0
  " >> ${logfile} 2>&1
  echo "------- Chinachu Cleanup End. -------" >> ${logfile}
fi

echo "------- TS File Delete End. -------" >> ${logfile}
以上、コイツをcronにぶち込んで運用しています。