staging.inyokaproject.org

Dateien per Script auf FPT übertragen

Status: Gelöst | Ubuntu-Version: Server 16.04 (Xenial Xerus)
Antworten |

gnude

Avatar von gnude

Anmeldungsdatum:
11. Juli 2014

Beiträge: Zähle...

Hallo, ich möchte gerne monatlich Dateien per FTP von dem lokalen Dateisystem auf einen FTP Server übertragen. Wie kann ich das am einfachsten per Script durchführen? Das Script selbst würde ich dann per crontab starten, aber wie übertage ich die Dateien am unkompliziertesten. Es handelt sich um Textdateien, sowohl der Zielserver als auch Benutzername und Kennwort liegen vor, sollen aber natürlich automatisch übertragn werden.

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Naja, schreib ein kurzes Skript, welches lftp oder ncftp verwendet, um die Dateien auf den FTP hochzuladen. Hat natürlich den unschönen Effekt, dass Du benutzernamen und Passwort für den FTP in das Skript schreiben musst, aber das lässt sich bei FTP nicht vermeiden, soweit ich weiß.

Fpr lftp könnte eine Zeile z.B. so ausssehen:

lftp -c "open -u Benutzer,geheimnis ftp.example.org; mput *.txt"

Also, Du könntest die Zugangsdaten auch in deine ~/.netrc Datei schreiben, dann tauchen sie nicht mehr im Skript auf, aber dann liegen sie halt in der .netrc-Datei unverschlüsselt rum.

gnude

(Themenstarter)
Avatar von gnude

Anmeldungsdatum:
11. Juli 2014

Beiträge: Zähle...

Lösung sieht schonmal gut aus. Kann ich die Dateien (es sind mehrere) auch in verschiedene Zielverzeichnisse kopieren?

Wenn ich Datei "a.txt" in Verzeichnis_A und Datei "b.txt" in Verzeichnis_B haben möchte...

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Also Du kannst auch mehrere Befehle mit Semikolon getrennt nacheinander ausführen. Das Zielverzeichnis kannst Du bei mput mit angeben mit der Option -O angeben.

Probier es doch einfach mal aus. Im Zweifelsfalle:

man lftp

Udalrich

Anmeldungsdatum:
15. Mai 2019

Beiträge: 533

Man kann auch das Paßwort in einer Datei verschleiern, z.B. durch Base64, dann liegt es erstens nicht offen im Skript herum und auch nicht ganz offen in einer Datei.
Zudem kann man mit dem Programm curl zielgerichtet in und aus FTP-Ordner hoch- und runterladen, fast wie z.B. mit wget. Doch welches FTP-Programm benutzt wird, hängt von den persönlichen Anforderungen ab.

Paßwortdatei erstellen:

echo geheimespaßwort | base64 > passdatei.txt

Dann im Skript diese benutzen:

passwort=$(base64 --decode passdatei.txt)
curl --upload-file Quelldatei --user benutzername:$passwort ftp://fritz.box/Zielordner/
Antworten |