Dateien und Ordner auf Webspace mittels Skript automatisch löschen?

jetzt schaut es anders aus, aber sehr merkwürdig:

delete | ftp mein_webspace.hosteurope.de
PFAD_UND_DATEI | ftp mein_webspace.hosteurope.de
delete | ftp mein_webspace.hosteurope.de
PFAD_UND_DATEI | ftp mein_webspace.hosteurope.de​
 
Aha, wir komme der Sache schon näher.
Ändere die erste Zeile der Schleife in
Code:
for cmd in "$(cat /pfad/zur/sktriptdatei)"
Dann müsste es mE. laufen.
 
dann packt er einfach alle delete Befehle nacheinander ins Terminal, ohne Ergebnis.

Wenn ich noch die ' beim FTP Server wegnehme, dann kommt dieses Ergebnis:

Sorry, input line is too long.​

Ich werde jetzt mal ins Bett gehen, ist doch schon ziemlich spät. Danke für Deine Geduld und Hilfe. Morgen gehts weiter :)
 
Wenn die Kommandos zeilenweise kommen, ist alles okay.
Die ' Zeichen musst Du dann beide wieder wegnehmen. Die waren nur zum Testen da.
 
nochmals vielen Dank für Deine Geduld, aber es funzt immer noch nicht:

mein-imac:~ meinlogin$ for cmd in "$(cat PFAD_UND_DATEINAME)"; do echo $cmd | ftp mein_webspace.hosteurope.de; done
Connected to mein_webspace.hosteurope.de.
... FTP server ready
331 Password required for mein_login.
230 User mein_login logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
Sorry, input line is too long.
221 Goodbye.
mein-imac:~ meinlogin$​
 
Kommen die Kommandos mit
echo $cmd '| ftp ftp.server.de'​
zeilenweise oder als lange Kette?

Welche Ausgabe erhältst Du mit
Code:
head +3 /pfad/zur/sktriptdatei
bzw.
Code:
cat /pfad/zur/sktriptdatei
 
Zuletzt bearbeitet:
Beim ersten Befehl bekomme ich genau den Text aus den Hochkommatas zurückgeliefert.

Beim 2ten Befehl bekomme ich die ersten 10 Zeilen meiner Löschdatei angezeigt.

Beim 3ten Befehl bekomme ich den gesammten Inhalt meiner Löschdatei angezeigt.
 
Okay — ich glaub, ich hab das Problem gefunden.
echo ist ein Shell builtin.
Die Bash verhält sich hier anders als die Z Shell.
Das hier sollte hoffentlich in beiden Shells funktionieren:
Code:
for line in "$(cat file)"
do
echo "$line" | ftp ftp.server.de
done
 
Zuletzt bearbeitet:
und wieder ein neues Problem :)

-bash: syntax error near unexpected token `echo'
 
do vergessen — musst schon auch ein wenig mitdenken ;).
 
versuche ich ja ;-)

Es fehlte in der Tat das "do". Nur leider funktioniert jetzt noch weniger:

mein-imac:~ login$ for line in "$cmd(cat PFAD-UND-DATEINAME)"
> do
> echo "$cmd" | ftp mein-webspace.hosteurope.de
> done
Connected to mein-webspace.hosteurope.de.
... FTP server ready
331 Password required for mein-login.
230 User mein-login logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
221 Goodbye.
mein-imac:~ login$​
 
Lass die Pipe weg, und schau was kommt:
Code:
 for line in "$(cat PFAD-UND-DATEINAME)"
> do
> echo "$line"
> done
So siehst Du, was an das ftp Kommando übergeben wird.
Fehlermeldung erscheint ja nicht mehr.
 
Zuletzt bearbeitet:
ohne Pipe passiert gar nichts mehr :-(
 
Kein Wunder.
Du denkst nicht mit. Ich liefere nur das Konzept, den rest musst Du schon selbst machen.

Schau Dir nochmal #32 an, da hab' ich es korrigiert.
Dementsprechend musst Du die Schleife aufbauen.
 
Hi,

den Fehler, dass man eine Variable auch nutzen muss, wenn man dort Inhalte reinkippt, habe ich inzwischen auch gefunden :) Schwere Geburt, aber:

Es war erfolgreich! Vielen, vielen Dank für Deine Engelsgeduld! Jetzt kann ich mich ja als ehemaliger Windows User und Mac Anfänger outen ;-)
 
Mit Mac hat das ganze ja gar nicht einmal etwas zu tun, eher mit der Shell.
Schön, dass es jetzt geklappt hat ;)
 
Zurück
Oben Unten