Per FTP im Skript zu bestimmtem FTP-Account

K

KaraokeGirl

Grünschnabel
Hallo zusammen,

ich muss erst mal vorneweg schicken, dass ich auf Solaris 10 unterwegs bin.

Hier habe ich erfolgreich mehrere Einträge im .netrc, unter anderem einen User + Passwort für einen FTP-Server.
So kann ich dann verskriptet einen Upload durchführen.

Jetzt habe ich zwei verschiedene User für den gleichen FTP-Server eingetragen. Wie kann ich die denn in einem (Bourne-)Skript ansprechen?
Normalerweise / Bisher bin ich mit ftp ftp.server.de direkt dorthin gekommen, wo ich durch den Eintrag in .netrc hin wollte.
Kann ich beim Aufruf auch noch einen User mit angeben? im FTP-man habe ich jedenfalls nichts dazu gefunden...

Oder kann ich den Upload irgendwie auf anderem Weg per Skript genau zu dem Account lotsen?

Besten Dank von KaraokeGirl.

PS: Ist ein X-Post zu Spotlight, aber dort konnte mir nicht wirklich geholfen werden. :(
 
Hi,

also wenn ich dein Problem richtig verstehe, dann hast du auf einem ftp Server zwei verschiedene Accounts, und du moechtest gerne per Skript festlegen lassen welcher konkret benutzt werden soll. Und in ~/.netrc koennen nur die Daten fuer genau einen bestimmten Account hinterlegt werden.
In der manpage von ftp habe ich auch nichts gesehen was die Uebergabe des Login Namens betrifft.

Mir wuerden wohl drei Workarounds einfallen, die aber alle nicht ganz das gelbe vom Ei sind, duerften aber alle drei funktionieren:

1. Du legst dir fuer jeden Account jeweils eine eigene .netrc Datei an, z.B. .netrc1 und 2, und in deinem Skript benennst du die entsprechende Datei temporaer in .netrc um. Wenn der ftp upload fertig ist, den alten Namen wiederherstellen.

2. Du aenderst den Inhalt der .netrc Datei direkt im Skript, z.B. mit sed. Das ist aber wahrscheinlich schwieriger als Loesung 1, weil man sich mit sed dann halbwegs auskennen sollte.

3. Lass ich mal weg, weil das doch eine vergleichsweise schwachsinnige Idee ist ;)
Die andern beiden sind besser. Aber vielleicht gibt es auch noch logischere und einfachere Loesungen.

mfg,
bytepool
 
Was spricht gegen einen Userwechsel per su im Skript?
 
@sinn3r
Funktioniert das denn mit ftp? "ftp user@host" kam mir natuerlich auch direkt in den Sinn, aber das scheint das Programm ftp nicht zu kennen.

@Wolfgang
Das war in der Tat die dritte Moeglichkeit die mir eingefallen war, aber so wie ich das verstanden habe existieren die zwei seperaten User nur auf dem ftp Server, d.h. es muesste lokal auf dem Solaris Rechner nochmal ein User nur zu diesem einen Zweck angelegt werden. Das schien mir irgendwie unnoetig.

mfg,
bytepool
 
@sinn3r
Funktioniert das denn mit ftp? "ftp user@host" kam mir natuerlich auch direkt in den Sinn, aber das scheint das Programm ftp nicht zu kennen.
Stimmt, mit dem Konsolenftp gehts nicht, aber wget ist zb in der Lage, sowas zu haendeln, bringt aber hier nicht viel *G*
 
Na dann versuch mal aus der Boardsuche schlau zu werden:
Klick

Mit ein wenig Geschick kannst du darauß etwas machen. ;)

Gruß Wolfgang
 
Hallo Wolfgang,

zunächst mal danke für den Tipp. Es ist wirklich so, dass ftp-User != unix-user.

Der Code auf den Du da verweist wäre eigentlich optimal:
Code:
ftp -n <<EOF
open ftp.server.adresse
user username
password mypassword #nur bei nicht anonymen Zugang
cd /zielverzeichnis #zum remote Zielverzeichnis wechseln
lcd /source/path  #zum localen Quellverz. wechseln
put datei
quit
EOF

...hat nur den einen Haken, dass bei der Ausführung trotzdem nach dem Passwort gefragt wird. Liegt das an mir?
Den Umweg mit den umzuschreibenden ".netrc" würde ich nur recht ungern gehen wollen.

PS: So unfreundlich wie ich an anderer Stelle gelesen habe, bist Du gar nicht. ;)
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Heureka, ich habs sogar selber gefunden.
Ähm, darf ich Dich korrigieren?

Code:
ftp -n <<EOF
open ftp.server.adresse
[B]user username mypassword[/B]
cd /zielverzeichnis #zum remote Zielverzeichnis wechseln
lcd /source/path  #zum localen Quellverz. wechseln
put datei
quit
EOF
 
Zuletzt bearbeitet:
Zurück
Oben