ここには.netrcファイルと私が使ったコマンドがあります。ここで何が間違っているのか知っていますか?
[root@localhost ~]# cat /root/.netrc
machine ftp.nyxdata.com
login anonymous
password empty
macdef download_nyse_index
cd /OpenBook/SymbolMapping
bin
get SymbolMap.xml /tmp/SymbolMap.xml
quit
[root@localhost ~]# ftp
ftp> $ download_nyse_index
'download_nyse_index' macro not found.
ftp> bye
[root@localhost ~]# uname -a
Linux localhost 3.17.8-200.fc20.i686+PAE #1 SMP Thu Jan 8 23:45:44 UTC 2015 i686 i686 i386 GNU/Linux
[root@localhost ~]# which ftp
/bin/ftp
[root@localhost ~]# rpm -qf /bin/ftp
ftp-0.17-65.fc20.i686
ベストアンサー1
macdef
他のディレクティブ(など)と同様に、ディレクティブはそれが表示される-headedセクションにのみlogin
適用されます。私が知っている限り、最初のセクションの前にディレクティブを置くことは効果がなく、コマンドが実行される前にマクロを使用する方法はありません。password
machine
macdef
machine
open
まず、サイトへの接続を開くとマクロが機能します。
$ ftp ftp.nyxdata.com
ftp> $download_nyse_index
FTPセッション全体をスクリプト化するには、ftp
コマンドに入力を渡します。
ftp ftp.nyxdata.com <<EOF
cd /OpenBook/SymbolMapping
bin
get SymbolMap.xml /tmp/SymbolMap.xml
quit
EOF
この簡単な作業を行うには、wgetまたはカールを使用してください。コマンドラインにパスワードが表示されたくない場合は、パスワードを入力してください~/.netrc
。 wgetはデフォルトでパスワードを読み取り、-n
そのオプションを渡すとカールはパスワードを読み取ります。
wget -O /tmp/SymbolMap.xml ftp://ftp.nyxdata.com/OpenBook/SymbolMapping/SymbolMap.xml