2017-07-18 3 views
0

こんにちはすべてこのタイプの問題について多数の投稿を用意していますが、提案のいずれも私の問題を解決していません。たぶん私は何かを逃している?私は何をしようとしていることは、リモート・サーバ「A」からFTPのファイルで、ローカルウェブサーバに保存し、私はそのようなFTP用のシェルスクリプト

マイクロンようにcronでこのスクリプトを実行することを計画:私のスクリプト

* 1 * * * ./public/xfer.sh > ./public/xferlog.log 

HOST='255.255.255.255' 
USER='myadminuser' 
PASSWD='supersecretpassword' 

ftp -n -v -i $HOST<<EOF 
quote USER $USER $PASSWD 
lcd /usr/www/xxxx/public/svss/cq 
ascii 
cd svss 
get pbsvss.htm 
binary 
close 
EOF 

私はTHIを行うためにはwgetを使用することにしました。..

./xfer.sh: line 4: $'\r': command not found 
./xfer.sh: line 14: warning: here-document at line 5 delimited by end-of-file (w')ted `END_SCRIPT 
(255.255.255.255)..255.255.255 
220 Microsoft FTP Service 
Remote system type is Windows_NT. 
331 Password required for myadminuser . 
530 User cannot log in. 
usage: lcd local-directory 
200 Type set to A. 
530 Please login with USER and PASS. 
remote: pbsvss.htm 
530 Please login with USER and PASS. 
ftp: bind: Address already in use 
200 Type set to I. 
221 Goodbye. 
?Invalid command 
+0

ログインしているWindowsシステムであるため、ドメイン名を要求していないことは確実ですか? 'somedomain/myadminuser'のようなもの – Difster

+0

トピックから少し外れて:FTP経由でファイルを転送するために、ftpを直接使うよりも' ncftp'ユーティリティを使うのがはるかに簡単です。 – John1024

+0

私はドメインを必要としないと確信しています。私は各行をコピー&ペーストすることができ、正常に動作します。 ncftpに関しては、残念ながら私は共有ホスティングシステムを利用しており、他のアプリケーションやプログラムをインストールするアクセス権はありません。私はsshアクセスを持っています。これは私がコードをテストしているところです –

答えて

0

ネヴァーマインド私にこれらのエラーを与えます代わりにs。

は、今私がしなければならないすべては私がスクリプトに生のパスワードを渡すことはありませんセキュリティ上の問題を修正するために何をすべきか

wget -P /path/to/save/to/ -nH --cut-dirs=1 -m ftp://user:[email protected]/directory/ 
+0

これはメモと同様に、パスワードをコマンドラインに置き、システム上のシェルを持つ誰もがpsコマンドで完全なコマンドラインを見ることができます。多くの場合、それはセキュリティ上の懸念になる可能性があります。 – John1024

+0

その他: 'wget'は'〜/ .wgetrc'(または '〜/ .netrc')をサポートしているので、パスワードを比較的安全に保存できるようになっています。 – John1024

0

、次のコード1行です。私はシェルでこのよう

何か(明らかに私は、更なるステップを取るが、これはそれのための基礎である)

echo -n 'mysecretpass' | base64 
c2NvdHRsaW51eC5jb20gcm9ja3MK 

は、スクリプト中で私はコマンドラインパラメータで出力を使用

$pass = c2NvdHRsaW51eC5jb20gcm9ja3MK | base64 --decode