CRON によって実行される ET9000 Sat-Receiver の録音を自動クリーニングするスクリプトを作成しました。
録画内のファイルの古い X-Days をクリーンアップするスクリプトを既に実行しています...しかし、私はそれを認識しました
find /media/hdd/Serien/my_fav_series/ -mtime +5
は十分に効率的ではなく、1 つの録音で生成される 4 ~ 6 個のファイルのいくつかは異なる年代を持っています...そして、それらが X 日よりも古いものであっても、常にいくつかの録音が残っていることを確認したいのです!
だからここに私がこれまでに持っているものがあります:
#!/bin/bash
DIR=$1
TS=$2
REC=$((TS * 6))
RECS=$((TS + 1))
FILES=$(ls /media/hdd/Serien/$DIR/|egrep '\.ts$'|wc -l)
DATE=$(date +"%Y-%m-%d %H:%M")
if [ $FILES -gt $TS ];
then
ls -ct /media/hdd/Serien/$DIR/|egrep '\.ts$'|tail -n+$TS > /tmp/del.lst
cd /media/hdd/Serien/$DIR
#cat /tmp/del.lst|xargs -0 rm
while IFS= read -r file
do
rm -- "$file"
done < /tmp/del.lst
cd -
rm /tmp/del.lst
echo "$DATE - $DIR - Saved the $RECS newest records & deleted older records in folder" >> /media/hdd/backup/cleanup.log
else
echo "$DATE - $DIR - Less then $TS records in folder" >> /media/hdd/backup/cleanup.log
fi
期待どおりに機能し、パラメーターで指定された量を維持しながら、最も古い *.TS ファイルを削除します...
しかし、それはまだ私が望むほど知的ではありません! 私がまだ必要としているのは、すべての残り物を削除する追加です。残り物とは、レコードの一部を消費するスペースではないことを意味します。
20121221 1628 - ProSieben HD - How I Met Your Mother.ts
20121221 1628 - ProSieben HD - How I Met Your Mother.ts.ap
20121221 1628 - ProSieben HD - How I Met Your Mother.ts.cuts
20121221 1628 - ProSieben HD - How I Met Your Mother.ts.sc
これがクリーンアップされた後、*.AP、*.CUTS、*.SC、および *.META がディレクトリに残されます。そして、対応する *.TS を持たないすべてのファイルを em で削除する関数を作成する方法がわかりません...
編集:
ls -ct /media/hdd/Serien/How_I_met_your_mother/
20130102 1600 - ProSieben HD - How I Met Your Mother.ts.meta
20130102 1600 - ProSieben HD - How I Met Your Mother.ts
20130102 1600 - ProSieben HD - How I Met Your Mother.ts.ap
20130102 1600 - ProSieben HD - How I Met Your Mother.ts.cuts
20130102 1600 - ProSieben HD - How I Met Your Mother.ts.sc
20130102 1600 - ProSieben HD - How I Met Your Mother.eit
20130102 1141 - ProSieben HD - How I Met Your Mother.ts.ap
20130102 1141 - ProSieben HD - How I Met Your Mother.ts.cuts
20130102 1141 - ProSieben HD - How I Met Your Mother.ts.sc
20130102 1141 - ProSieben HD - How I Met Your Mother.eit
20130102 1114 - ProSieben HD - How I Met Your Mother.eit
「ls -ct」出力の最初の 6 行は、まだ消去されていない完全な記録を示しています。5 つのファイルのみを示す 2 番目のセットは、既に削除されたレコードの残り物です。
私が必要としているのは、その最初の日付と時刻のパターンを認識し、グループ内のものを並べ替えて、そのグループに *.TS ファイルが含まれているかどうかを確認し、削除されていない場合はグループの残りの部分を削除する機能です。
お役に立てれば幸いです。
グリーツ・ミルコ