# FTP per Bash: Wie ganze Verzeichnisse kopieren?



## riedochs (30. Dezember 2010)

Moin,

ich will per bash einige Verzeichnisse auf einen ftp Server kopieren. Das ganze soll später per cron zeitgesteuert ablaufen.

Bisher sieht mein script so aus:


```
#!/bin/bash

lokal_path=/ftpup

ftp -in <<EOFTP
open <FTP Server>
user <Benutzer> <Passwort>
bin
lcd $local_path
mput *.rar
by
EOFTP
```

Das Problem ist, das ich nicht die Verzeichnisse kopiert bekomme, sondern nur Dateien. Irgendwer eine Idee?


----------



## dot (30. Dezember 2010)

Ist zwar nicht ftp, aber waere das nicht eine Alternative?

ncftpput -C remote-host local-path-name remote-path-name


----------



## riedochs (30. Dezember 2010)

Ansich nicht schlecht. Nur wie kann ich ncftpput dazu bringen die Daten als binary zu senden? Weißt du ob das Programm automatisch neu verbindet wenn die Zwangstrennung kommt?


----------



## dot (31. Dezember 2010)

Binary scheint wohl der Standard zu sein. Jedenfalls deute ich das aus dem Manual



> -a
> 
> Use ASCII transfer type instead of binary.



Das Andere kann ich dir leider nicht sagen :-/


----------



## pyro539 (6. Januar 2011)

Hab grade gegoogled und gesehen, dass NcFTP mit einem "Daemon" kommt. Den Daemon kann man einfach mit FTP-Jobs überhäufen und er kümmert sich dann automatisch drum. Folgendes hab ich auch in der ncftp-manpage gefunden:


			
				man ncftp schrieb:
			
		

> The daemon will also automatically continue to retry the transfers until they finish.



Zum starten der jobs einfach ncftpput mit -b als Parameter aufrufen. Noch besser wäre es, "-bb" zu benutzen, da wird nur der Job erstellt, allerdings nicht der Daemon (ncftpbatch). Das hat den Vorteil, dass du beim Anlegen mehrere Jobs nur einen Daemon starten brauchst. Wenn du dann alle Jobs angelegt hast, kannst du dann den Daemon starten.


----------

