web-dev-qa-db-ja.com

ftpコマンドでユーザー名とパスワードを指定する方法は?

シェルスクリプトでftpの呼び出しを自動化したい。入力した場合

$ftp somehost.domain.com

ユーザー名とパスワードの入力を求められます。そのユーザー名とパスワードをftpの呼び出しの一部として提供したいと思います。 ftpの man page には、ftpプロンプトでユーザーコマンドを発行できると書かれていますが、一度にすべてのFTPにログインしたいと思います。それは可能ですか? FTPのフラグに何も表示されません。 -sオプションを使用すると、ftpプロンプトが表示されたらいくつかのftpコマンドを指定するオプションが表示されますが、プロンプトにアクセスするにはユーザー名を指定する必要があります...

9
bernie2436

使う .netrcホームディレクトリのファイル。

内容は次のとおりです。

# machine <hostname> login <username> password <password>
machine ftp.example.com login myuser password $ecret

これがプログラムで行う場合は、.netrc接続する前に、完了したら削除してください。

10
bahamat

here doc を使用してcシェルスクリプトを作成することもできます。これは次のようになります。

#!/bin/sh
Host='someftpserver.com'
USER='username'
PASSWD='password'
FILES='*.txt'
#
ftp -nv $Host>$FTPLOG <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd somedirectory
binary
mget $FILES
quit
END_SCRIPT
1
user81134

必要に応じて、代替としてwputまたはwgetを検討することもできます。

最近wgetを使用していませんが、以前の回答で提案されているようにファイルを作成または変更したくなかったため、wputを使用しました。

wputの構文は次のとおりです。

wput <filename> ftp://<username>:<password>@<address>
0
Crumeniferus