# Ordnerinhalt kopieren falls Netzwerkverbindung besteht



## new_userr (2. Dez 2009)

Hallo Leute!

Ich habe eine Frage, die nicht gerade mit Java zu tun hat. Deswegen auch in dieser Abteilung.

Ich hab eine Laptop und einen Sat Receiver auf dem ein Linux Betriebssystem läuft. Dank der Fähigkeit das Teil zu programmieren kann ich nun Filme aufnehmen und zu Hause gucken.

Ich würde gerne ein Script schreiben, was folgende Eigenschaften hat: 

- Es soll geprüft werden, ob eine Verbindung zwischen Laptop und Sat Receiver besteht. Sprich: Sind beide an, steht eine Verbindung

- Wenn dies so ist, guckt der Sat Receiver in den Ordner für aufgenommene Filme und prüft auf Neue Filme

- Wenn das so ist, kopiert er die neuen Film im Hintergrund auf die Festplatte meines Laptops.
(- Wenn der Vorgang erfolgreich abgeschlossen ist, so löscht er die kopierten Filme)

- Wenn die beiden Fälle nicht eintreffen, so macht er nichts und das Script testen Intervall gesteuert später noch einmal. (cron?)

So, jetzt seid ihr dran  

Lg


----------



## madboy (2. Dez 2009)

new_userr hat gesagt.:


> Ich hab eine Laptop und einen Sat Receiver auf dem ein Linux Betriebssystem läuft.


Läuft auf beiden Linux?



new_userr hat gesagt.:


> Sind beide an, steht eine Verbindung


Welcher Art ist die Verbindung? FTP, HTTP, NFS,...



new_userr hat gesagt.:


> - Wenn dies so ist, guckt der Sat Receiver in den Ordner für aufgenommene Filme und prüft auf Neue Filme
> 
> - Wenn das so ist, kopiert er die neuen Film im Hintergrund auf die Festplatte meines Laptops.
> (- Wenn der Vorgang erfolgreich abgeschlossen ist, so löscht er die kopierten Filme)


bei NFS: rsync, cp, mv
bei FTP: FTP-Client, der mit Skripten umgehen kann
bei HTTP: wget, aria2c, ... allerdings wird's dann mit löschen schwieriger



new_userr hat gesagt.:


> - Wenn die beiden Fälle nicht eintreffen, so macht er nichts und das Script testen Intervall gesteuert später noch einmal. (cron?)


Jup, oder eine Endlosschleife, die erst prüft ob was getan werden soll und dann 
	
	
	
	





```
sleep
```



new_userr hat gesagt.:


> So, jetzt seid ihr dran


So, jetzt bist du dran ;-)


----------



## new_userr (2. Dez 2009)

Also der auf dem Laptop läuft ein Mac OS und die beiden Rechner können sich schonmal im Netzwerk sehen/pingen. Per FTP/SSH kann ich vom Laptop aus eine Verbindung zum SAT Receiver aufbauen. Auf meinem Laptop hab ich auch versucht einen NFS Ordner freizugeben und dann auf dem Receiver zu mounten allerdings mountet er nur den freigegebenen Order aber nicht den Inhalt komischerweise.. 

Gruß!


----------



## madboy (2. Dez 2009)

FTP klingt doch gut (vorausgesetzt, Sicherheit ist nicht so wichtig, sonst rsync über SSH). Keine Ahnung, was unter Mac OS für FTP-Clients existieren aber da wird sich bestimmt einer finden lassen, der mit Skripten umgehen kann.

Würde das dann so angehen


```
while ( true )
do 
  ftp: get remoteDirectory/*avi
  ftp: rm remoteDirectory/*avi
  sleep 600
done
```

Je nach FTP-Client musst du nicht mal vorher prüfen ob eine Verbindung existiert, da der Aufruf einfach fehlschlägt.
Kritisch kann es natürlich werden, wenn bei "get" der Server nicht erreichbar ist, bei "rm" jedoch schon... daher vielleicht doch vorher prüfen, ob eine Verbindung besteht.


----------

