web-dev-qa-db-ja.com

ユーザー名に@記号を付けてLinuxコマンドラインftpを使用するにはどうすればよいですか?

ユーザー名の中央に@サインがある場合、Linuxコマンドラインでこれを実行するにはどうすればよいですか?

ftp -u user:password@Host/destination_folder/ sourcefile.txt

ユーザー名は[email protected]であり、ホストはdomain.comと考えています。

注:これは無人アップロードであるため、ユーザー名とパスワードを入力することはできません。

24
bentford

別の方法として、設定ファイルを作成したくない場合は、curlの代わりにftpを使用して無人アップロードを行います。

curl -u user:password -T file ftp://server/dir/file
22
pts

これを試してください:「@」の代わりに「%40」を使用します

25
Angus S-F

次のように~/.netrcファイルでアカウントを定義してください。

machine Host login [email protected] password mypassword

詳細については、 man netrc を確認してください。

12
marcog

単にftp hostdomain.comと入力すると、次のプロンプトで名前を入力するよう求められました(現在のユーザーと異なる場合)。

FTPの設定方法に依存すると思います。つまり、同じユーザー名(提供されていない場合)を想定するか、または尋ねます。良いニュースは、解決策がなくても、次に直面したときにJust Work™があなたのためになるかもしれないことです:D

6
innovati

より完全な答えは、ftp(少なくともcentos 6にインストールされたftpプログラム)では不可能です。

無人のプロセスが必要だったため、「pts」の答えは問題なく機能します。

Ftpではなくcurlを使用して無人アップロードを実行します。

curl -u user:password -T file ftp://server/dir/file

%40は機能していないようです。

[~]# ftp domain.com
ftp: connect: Connection refused
ftp> quit
[~]# ftp some_user%[email protected]
ftp: some_user%[email protected]: Name or service not known
ftp> quit

Ftpプログラムを開いてドメインを使用し、求められたらユーザーを入力するだけです。通常、とにかくパスワードが必要なので、おそらくインタラクティブな性質は問題になりません。

[~]# ftp domain.com
Connected to domain.com (173.254.13.235).
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 2 of 1000 allowed.
220-Local time is now 02:47. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (domain.com:user): [email protected]
331 User [email protected] OK. Password required
Password:
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
2
Stephen

curl -f -s --disable-epsv -u [email protected]:gr8p455w0rd -T/some/dir/filename ftp://somewher.com/ByramHealthcareCenters/byram06-2011.csv

1
Dennis Comeaux