0

誰もが問題になるだろうという考えを持っていますか?

#!/bin/bash -x

HOST='192.163.3.3'
USER='ftpuser'
PASSWD='apple'
Logfile=a.log

while :; do
ftp -n -p -v $HOST < example.script >> a.log
grep -qF "Connected" a.log &&
grep -qF "File successfully transferred" a.log && break
done

quote USER $USER
quote PASS $PASSWD

example.scriptに含まれる

 put example.txt

実行した後、それは与えます

 grep: a.log: No such file or directory
 grep: a.log: No such file or directory
                .
                .

example.scriptと作成されたa.logは/homeディレクトリにあります

a.logに含まれる

 Connected to 192.163.3.3.
 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
 220-You are user number 9 of 50 allowed.
 220-Local time is now 14:38. 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.
 Remote system type is UNIX.
 Using binary mode to transfer files.
 local: example.txt remote: example.txt
 530 You aren't logged in
 Passive mode refused.
 221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
 221 Logout.

なぜログインできないのですか?

  HOST='192.163.3.3'
  USER='ftpuser'
  PASSWD='apple'
  FILE='example.txt'
  Logfile=a.log

  ftp -n -p -v $HOST << SCRIPT_END >> a.log
  quote USER $USER
  quote PASS $PASSWD

  put $FILE
  SCRIPT_END

これで動作しますが、なぜですか?違いは何ですか?

4

3 に答える 3

3

FTPデーモンがパッシブモードのファイル転送(PASVコマンド)を拒否しています。Pure-FTPdでパッシブモード転送を有効にする必要があります。このサイトには、その方法に関する優れたチュートリアルがあります。 パッシブFTP接続をファイアウォールを介して正しく機能させる-「FTPサーバーのセットアップ(Pure-FTPD)」セクションまでスクロールダウンします。

于 2012-11-28T14:00:06.690 に答える
0

パッシブモードであることに不満があります。コマンドから-pを削除するか、パッシブFTPを許可します。

-pデータ転送にはパッシブモードを使用します。ファイアウォールが外部からクライアントマシンへの接続を阻止している環境でftpを使用できるようにします。ftpサーバーがPASVコマンドをサポートしている必要があります。これは、PORT転送モードを使用するセキュリティ上の懸念から、すべてのクライアント(ftpおよびpftp)のデフォルトになりました。フラグは互換性のためにのみ保持され、効果はありません。

于 2012-11-28T14:01:41.097 に答える
0

私は通常、netrcファイルを作成し、それを使用して少なくともFTPセッションを開始すると、ftpセッションのスクリプトに関する多くの問題を回避できます。ほとんどのftpプログラムでは、代替のnetrcファイルを使用するオプションが提供されているため、でファイルを設定する必要はありません$HOME/.netrc

私はあなたがこのような1つのライナーが必要だと信じています:

machine 192.163.3.3 login ftpuser password apple

残念ながら、どこにもftpが設定されていないため、テストできません。ここにあるものはすべてscp//sshですsftp。これがサンプル .netrcファイルです。

于 2012-11-28T14:20:03.403 に答える