Ich habe mir dieses Script zum Verschieben von Aufnahmen zusammengebastelt:
Bash
#!/bin/sh
REC="$1"
RECDIR=`dirname "$REC"`
RECNAME=`basename "$RECDIR"`
TARGET=/video0/"$RECNAME"
function move() {
# Greift gerade etwas auf das Verzeichnis zu?
for f in $(find "$REC" -name *.pid)
do
svdrpsend.pl MESG FEHLER: Aufzeichnung in Verwendung!
exit 1
done
# Anlegen des Zielverzeichnisses
mkdir "$TARGET"
if [ ! -d "$TARGET" ]; then
svdrpsend.pl MESG FEHLER: Zielverzeichnis konnte nicht angelegt werden!
exit 1
fi
# Kopieren
cp -r "$REC" "$TARGET"
if [ $? != "0" ]; then
svdrpsend.pl MESG FEHLER während des Kopierens!
exit 1
fi
# Quellverzeichnis löschen
rm -rf "$REC"
rmdir "$RECDIR"
# VDR-Aktualisierung
touch /video0/.update
# Quellverzeichnis nach dem Verschieben noch vorhanden?
if [ -e "$REC" ]; then
svdrpsend.pl MESG WARNUNG: Dateien kopiert, Originalverzeichnis konnte nicht entfernt werden.
else
svdrpsend.pl MESG Verschieben erfolgreich ausgeführt.
fi
}
move >/dev/null 2>/dev/null &
Alles anzeigen
Klappt auch ganz gut. Allerdings kann man Aufnahmen verlieren, wenn die Zielplatte fast voll ist, da nach
cp -r "$REC" "$TARGET"
trotz des Fehlers "no space left on device" der Rückgabewert $? == 0 ist. Fehler wird nicht erkannt -> Aufnahme nicht komplett kopiert -> Quellvideo gelöscht.
Noch mehr Ideen? Vorschläge?