なぜ1つのスクリプトではカール-nが失敗しますが、他のスクリプトでは失敗しないのですか?
MacOS High Sierra で動作するカール 7.67.0
スクリプトには次のコードが含まれています。
host="ftp.xxxxxx.com/public_html/"
/opt/local/bin/curl -n -T $file $host -v
私にこれを与えた:
> USER xxxx
< 331 User xxxx OK. Password required
> PASS xxxxxxxxxx
< 230 OK. Current restricted directory is /
他のスクリプトの次のコード:
host="ftp.xxxxxx.com/public_html/"
/opt/local/bin/curl -n -T $file $host -v
私にこれを与えた:
* Couldn't find host ftp.mgnewman.com in the .netrc file; using defaults
<snip>
> USER anonymous
< 331 User anonymous OK. Password required
> PASS [email protected]
0 0 0 0 0 0 0 0 --:--:-- 0:00:05 --:--:-- 0< 530 Login authentication failed
* Access denied: 530
どちらのスクリプトも同じシステム上の同じディレクトリにあるbashスクリプトです。 .netrcファイルは1つだけです。明らかに、これはスクリプトが正常に使用されるので大丈夫です。カールコードとホスト変数は同じです。実際、最初のスクリプトのコードは2番目のスクリプトから直接コピーされます。
1つのカールコマンドが.netrcファイルを使用できますが、他のコマンドが利用できない理由を見つける方法は? 2番目のスクリプトにはカールが失敗する何かがあるはずですが、それが何であるかはわかりません。
答え1
.netrc
問題はファイルの履歴にあります。最初のホストには使用できますが、2番目のホストには使用できません。あなたができることは、2番目のホストにこのようなレコードを追加することです。予想される形式は次のとおりです。
machine <host name>
login <user-email or anonymous>
password <user-password or some mail for anonymous access>
オペレーティングシステムによって必要なレコードは次のとおりです。
machine <host name> login <user-email or anonymous> password <user-password or some mail for anonymous access>