# Dateien per ssh auf externen ftp-Server kopieren...



## hael (16. August 2007)

Hallo Leute.... ich bin sh Anfänger, kann zwar ganz gut mit php umgehen, aber sh ist halt doch ein bisschen anders...

Ich bin jetzt mehr als 2 Stunden auf der Suche nach einem einfachen script...

Scheinbar ist es zu einfach, als dass man es hier finden könnte...
Wahrscheinlich lachen sich alle hier schlapp, weil ich diese Frage stelle.

Aber bitte, wie gehts, dass ich aus einem bestimmten Verzeichnis heraus alle sich dort befindlichen .txt Dateien auf einen externen FTP-Server kopiere...?

Am besten wäre noch, dass nur die "neueren" Dateien, also die seit dem letzten kopieren veränderten dateien kopiert werden....

Bitte seid so nett und helft mir mal....
Vielen Dank!


----------



## zeroize (16. August 2007)

Mhhh, deine Frage habe ich jetzt noch nicht ganz verstanden - du willst ein Shellscript schreiben? Und das soll ein Liste von Dateien auf einen FTP-Server schieben? Und das ganze mit SSH? Oder mit FTP?
Sorry, aber weil ssh im Titel steht, verstehe ich den Ansatz noch nicht ganz!


----------



## hael (16. August 2007)

ah, ja, :

Es geht um einem Gameserver... der nur unter IP + port zu erreichen ist, oder per shell halt... 
dort soll ein script die txt dateien mit ergebinissen auf einen anderen Server rüberkopieren..

Sinn der Sache ist: 
Da die selben Games auf zwei verschiedenen Servern laufen, aber die ergebnisse auf beiden Servern die gleichen sein sollen, müssen die Ergebnisse von dem einen Server auch auf den anderen übertragen werden.....


----------



## jeipack (16. August 2007)

Hi

Wie wärs mit folgendem:


```
ftp -p -n [IP-Adresse] <<END_FTP1
quote USER [Dein FTP User]
quote PASS [dazugehöriges Passwort]
lcd [Dein lokales Verzeichnis]
cd [Verzeichnis auf dem FTP Server]
prompt
mdelete "*.txt"
mput "*.txt"
bye
END_FTP1
```

Wobei das in den [Klammern] von dir abgeändert werden muss. Die Klammern kommen übrigens weg.
mdelete löscht zuerst alle Txt Files auf dem FTP Server (keine Ahnung ob du das brauchst) und mput kopiert nun alle Txt Files aus dem Verzeichnis dass du bei lcd angegeben hast auf dem lokalen Server( auf dem das Script ausgeführt wird). Somit hast du immer die aktuellen Files auf dem FTP Server.
Der Befehl prompt bewirkt, dass du nicht manuell das Einverständiss fürs Hochladen geben must.
 Dass nur die geänderten Daten kopiert werden würde wohl auch ihrgendwie mit find gehen, dafür habe ich aber keine Zeit mehr..

Gruss und viel Erfolg
jeipack


----------



## hael (16. August 2007)

ahja, danke vorerst mal, werde es gleich ausprobieren....


----------



## hael (16. August 2007)

jaleider....

ftp: command not found....

sagt mir die Shell.....

kennt mein bash möglicherweise keine ftp befehle?


----------



## jeipack (16. August 2007)

sieht so aus. was hast für ne distri?

Wenns ein Debian und co. ist: apt-get install ftp (resp. aptitude install ftp)

gruss


----------



## hael (16. August 2007)

das da hab ich grad rauslesen können:

GNU bash, version 3.00.16(1)-release (x86_64-suse-linux)

leider weis ich jetzt nicht, ob das das von Dir erwähnte Debian & Co ist?


----------



## jeipack (16. August 2007)

Sag mal, ist das überhaupt dein Server? Hast du rootrechte und darfst was installieren?

Wenn ja versuchs mal mit:

```
yast -i ftp
```


----------



## hael (16. August 2007)

Yipie!

Vielen herzlichen DANK

Mit Deinem letzten Tipp hats nun geklappt...

Musste mein Bash wohl dieses FTP beibringen und nun funktioniert es nmit Deinem Script Vorschlag perfect!!


Also, cool, nochmals danke!


----------



## jeipack (16. August 2007)

Freut mich 

Aber nur damit wir korrekt bleiben. Deine Bash kann kein FTP. Du hast mit yast -i ftp einen FTP-Client installiert. Die Bash ruft diesen nur auf.

Gruss


----------



## hael (16. August 2007)

okay, danke, es ist gut, das noch zu wissen....

Allerdings muss ich sagen...: 
Es funktioniert.... wie das geht ist mir letztlich egal, hauptsache eben es geht....

also danke nochmal


----------

