Dateien vom Topf auf ein NAS kopieren
Verfasst: Do 14. Apr 2011, 15:23
Hallo zusammen,
nach langwierigen Versuchen habe ich es geschafft eine Basis zu erarbeiten um Dateien vom Topf auf ein auf Linux basierendes NAS zu kopieren. Da dies gleichzeitig mein erster Kontakt mit der Linuxkonsole war stellten diese ersten Erkenntnisse nur einen kleinsten gemeinsamen Nenner dar, der darauf wartet entsprechend ausgebaut zu werden.
Begonnen hat alles hier: viewtopic.php?t=38942
Als aktuelle Basis habe ich folgende Geräte verwendet: Topfield TF 6000 PVRE und ein Synology DS 111 NAS. Die Einbindung in ein Netzwerk setzte ich einfach voraus. In weiterer Folge dokumentiere ich nur mehr die Ergebnisse. Die entsprechenden Links zum Nachlesen hänge ich an.
Der Erste: http://www.synology-forum.de/showthread ... ittgeräten
Das Script kopiert die ?rec? ? Dateien aus einem Verzeichnis des Topfs in ein Verzeichnis der Diskstation. Danach werden die Dateien von ?rec? in ?ts? umbenannt. Zum Schluss erfolgt eine Statusmail.
Die Pfade gehören an die ?lokalen? Gegebenheiten angepasst. Beim editieren des Scriptes bitte aufpassen, dass am Zeilenende kein [CR] = Enter-Taste zum Einsatz kommt, da dies zu Fehlfunktionen führt. Ich habe zum erstellen Notepad++ verwendet und unter Bearbeiten / Zeilenende / Konvertiere zu UNIX (LF) eingestellt.
Das ist das Script:
#!/bin/sh
wget --directory-prefix=volume1/video/ ftp://user :p asswort@IPTopf/DataFiles/Test/*.rec
cd /volume1/video/
for i in $(find ./ -type f -name "*.rec")
do
mv "$i" "$(echo $i | awk -F.rec '{print $1}').ts"
done
echo "Kopieren erfolgreich abgeschlossen" | nail -s "Statusmeldung DS111" adresse@provider
Zu den Befehlen:
1.) Kopieren vom Topf: ?wget?. Diese Aufgabe kann auch jeder andere FTP-Client durchführen, nur wget ist bereits auf der DS vorhanden und es muss nichts nachinstalliert werden. Andere Clients können auch das Löschen der heruntergeladenen Dateien durchführen, nur mein 6000-er hat dies verweigert, sodass ich dann bei wget geblieben bin. Wenn mein zu beschaffender 2410 diese Funktion unterstützt kommt ein entsprechendes Update.
Links: http://www.synology-forum.de/showthread ... ftp-Client
http://www.synology-forum.de/showthread ... d-mit-wget
wget --directory-prefix=volume1/video/ ftp://user :p asswort@IPTopf/DataFiles/Test/*.rec
directory-prefix=volume1/video/ -> Zielverzeichnis auf der DS
ftp://user :p asswort@IPTopf/DataFiles/Test/*.rec -> Quellverzeichnis (feste IP für den Topf sehr empfehlenswert)
2.) Umbenennen der Dateien: ?mv?. Da ein mehrfaches Umbenennen nicht möglich ist, ist hier die erste Programmierarbeit angesagt:
cd /volume1/video/ Wechsel ins Zielverzeichnis
for i in $(find ./ -type f -name "*.rec")
do
mv "$i" "$(echo $i | awk -F.rec '{print $1}').ts" Umbenennen in ?ts?
done
Der springende Punkt ist der Wechsel ins richtige Zielverzeichnis. Die Dateien können auch mit einer anderen Endung versehen werden, sofern die der Streamingclient dann erkennt.
3.) Statusmail: ?nail?. Man kann auch ohne das Teil leben, ich habs aber schön gefunden. Leider ist dazu einige Vorarbeit notwendig, die einen Anfänger einige Nerven kosten können. Vor allem benötigt man den Installer ?ipkg?. Hat man diese erste Hürde überwunden ist die Konfiguration angesagt. Da nail meiner Ansicht nach ziemlich mimosig ist, ist viel probieren angesagt.
Link: http://www.synology-forum.de/showthread ... onsproblem
echo "Kopieren erfolgreich abgeschlossen" | nail -s "Statusmeldung DS 111" adresse@provider
Diese Meldung besagt nicht, dass alles wirklich erfolgreich war, da keine Statusmeldungen der vorhergegangenen Befehle abgefragt werden, sonder lediglich, dass alles durchgelaufen ist.
Bleibt nur noch mittels Terminalprogramms (ich verwende Putty) auf die DS zuzugreifen und das Script zu starten. Vielleicht findet sich jemand, der sich besser mit Scriptprogrammierung auskennt als ich (ist nicht schwer) und die Sache weiterbringt. Ansonsten werde ich versuchen mich weiter einzulesen und weitere ?Updates? zu bringen.
Als nächstes kommt eine Zeitsteuerung mittels ?cron?. Bei Bedarf führe ich den einen oder anderen Punkt auch gerne ausführlicher aus.
Gerd
PS . Das Script endet auf "txt" da ich es sonst nicht anhängen hätte können. Grundsätzlich ist die Dateiendung egal, ich empfehle aber es in "sh" umzubenennen. Dann stellt sich die Sache auf der Konsole übersichtlicher dar.
nach langwierigen Versuchen habe ich es geschafft eine Basis zu erarbeiten um Dateien vom Topf auf ein auf Linux basierendes NAS zu kopieren. Da dies gleichzeitig mein erster Kontakt mit der Linuxkonsole war stellten diese ersten Erkenntnisse nur einen kleinsten gemeinsamen Nenner dar, der darauf wartet entsprechend ausgebaut zu werden.
Begonnen hat alles hier: viewtopic.php?t=38942
Als aktuelle Basis habe ich folgende Geräte verwendet: Topfield TF 6000 PVRE und ein Synology DS 111 NAS. Die Einbindung in ein Netzwerk setzte ich einfach voraus. In weiterer Folge dokumentiere ich nur mehr die Ergebnisse. Die entsprechenden Links zum Nachlesen hänge ich an.
Der Erste: http://www.synology-forum.de/showthread ... ittgeräten
Das Script kopiert die ?rec? ? Dateien aus einem Verzeichnis des Topfs in ein Verzeichnis der Diskstation. Danach werden die Dateien von ?rec? in ?ts? umbenannt. Zum Schluss erfolgt eine Statusmail.
Die Pfade gehören an die ?lokalen? Gegebenheiten angepasst. Beim editieren des Scriptes bitte aufpassen, dass am Zeilenende kein [CR] = Enter-Taste zum Einsatz kommt, da dies zu Fehlfunktionen führt. Ich habe zum erstellen Notepad++ verwendet und unter Bearbeiten / Zeilenende / Konvertiere zu UNIX (LF) eingestellt.
Das ist das Script:
#!/bin/sh
wget --directory-prefix=volume1/video/ ftp://user :p asswort@IPTopf/DataFiles/Test/*.rec
cd /volume1/video/
for i in $(find ./ -type f -name "*.rec")
do
mv "$i" "$(echo $i | awk -F.rec '{print $1}').ts"
done
echo "Kopieren erfolgreich abgeschlossen" | nail -s "Statusmeldung DS111" adresse@provider
Zu den Befehlen:
1.) Kopieren vom Topf: ?wget?. Diese Aufgabe kann auch jeder andere FTP-Client durchführen, nur wget ist bereits auf der DS vorhanden und es muss nichts nachinstalliert werden. Andere Clients können auch das Löschen der heruntergeladenen Dateien durchführen, nur mein 6000-er hat dies verweigert, sodass ich dann bei wget geblieben bin. Wenn mein zu beschaffender 2410 diese Funktion unterstützt kommt ein entsprechendes Update.
Links: http://www.synology-forum.de/showthread ... ftp-Client
http://www.synology-forum.de/showthread ... d-mit-wget
wget --directory-prefix=volume1/video/ ftp://user :p asswort@IPTopf/DataFiles/Test/*.rec
directory-prefix=volume1/video/ -> Zielverzeichnis auf der DS
ftp://user :p asswort@IPTopf/DataFiles/Test/*.rec -> Quellverzeichnis (feste IP für den Topf sehr empfehlenswert)
2.) Umbenennen der Dateien: ?mv?. Da ein mehrfaches Umbenennen nicht möglich ist, ist hier die erste Programmierarbeit angesagt:
cd /volume1/video/ Wechsel ins Zielverzeichnis
for i in $(find ./ -type f -name "*.rec")
do
mv "$i" "$(echo $i | awk -F.rec '{print $1}').ts" Umbenennen in ?ts?
done
Der springende Punkt ist der Wechsel ins richtige Zielverzeichnis. Die Dateien können auch mit einer anderen Endung versehen werden, sofern die der Streamingclient dann erkennt.
3.) Statusmail: ?nail?. Man kann auch ohne das Teil leben, ich habs aber schön gefunden. Leider ist dazu einige Vorarbeit notwendig, die einen Anfänger einige Nerven kosten können. Vor allem benötigt man den Installer ?ipkg?. Hat man diese erste Hürde überwunden ist die Konfiguration angesagt. Da nail meiner Ansicht nach ziemlich mimosig ist, ist viel probieren angesagt.
Link: http://www.synology-forum.de/showthread ... onsproblem
echo "Kopieren erfolgreich abgeschlossen" | nail -s "Statusmeldung DS 111" adresse@provider
Diese Meldung besagt nicht, dass alles wirklich erfolgreich war, da keine Statusmeldungen der vorhergegangenen Befehle abgefragt werden, sonder lediglich, dass alles durchgelaufen ist.
Bleibt nur noch mittels Terminalprogramms (ich verwende Putty) auf die DS zuzugreifen und das Script zu starten. Vielleicht findet sich jemand, der sich besser mit Scriptprogrammierung auskennt als ich (ist nicht schwer) und die Sache weiterbringt. Ansonsten werde ich versuchen mich weiter einzulesen und weitere ?Updates? zu bringen.
Als nächstes kommt eine Zeitsteuerung mittels ?cron?. Bei Bedarf führe ich den einen oder anderen Punkt auch gerne ausführlicher aus.
Gerd
PS . Das Script endet auf "txt" da ich es sonst nicht anhängen hätte können. Grundsätzlich ist die Dateiendung egal, ich empfehle aber es in "sh" umzubenennen. Dann stellt sich die Sache auf der Konsole übersichtlicher dar.