Antworten:
Nicht mit den ftp
Programmen, auf die ich gestoßen bin, da sie ein Skript für ihre Standardeingabe erwarten, aber ein Shebang würde den Skriptnamen in ihrer Befehlszeile übergeben.
Sie können ein Here-Dokument verwenden , um ein Skript ftp
über einen Shell-Wrapper zu übergeben.
#!/bin/sh
ftp <<EOF
open 192.168.1.1
put *.gz
EOF
Lftp akzeptiert einen Skriptnamen, der als Argument übergeben wird.
#!/usr/bin/lftp -f
open 192.168.1.1
put *.gz
Ncftp wird mit zwei Tools geliefertncftpget
und eignet sichncftpput
für einfache Stapel von Gets oder Puts.
Zsh enthält ein FTP-Modul . Die Verwendung einer geeigneten Shell anstelle eines direkten FTP-Skripts hat den Vorteil, dass Sie auf Fehler reagieren können.
#!/bin/zsh
zmodload zsh/zftp
open 192.168.1.1
put *.gz
Natürlich gibt es viele andere Sprachen, die Sie verwenden können: Perl, Python, Ruby usw.
Ein anderer Ansatz besteht darin, den FTP-Server als Verzeichnis bereitzustellen und dann cp
( rsync
oder andere Tools) zum Kopieren von Dateien zu verwenden. Es gibt viele FUSE- Dateisysteme für den FTP-Zugriff, hauptsächlich CurlFtpFS und LftpFS .
Beachten Sie, dass Sie mit SSH-Zugriff besser dran sind, wenn Sie die Authentifizierung verwenden möchten (wahrscheinlich beim Hochladen) und die Kontrolle über den Server haben. Es ist sicherer und flexibler. Um Dateien über SSH zu kopieren, können Sie scp
oder sftp
oder rsync für eine effiziente Synchronisierung (falls einige der Dateien bereits vorhanden sind) oder Unison (für eine bidirektionale Synchronisierung) verwenden oder mit SshFS mounten .