Eu defini uma macro no arquivo .netrc mas quando eu executo do ftp ele diz “macro not found”

2

Aqui está o arquivo .netrc e o comando que eu uso, alguma idéia do que está errado aqui?

[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
    
por e271p314 06.07.2015 / 12:09

2 respostas

1

Uma diretiva macdef , como as outras ( login , password , etc.), aplica-se apenas à sub-rotina machine -headed em que está. Até onde eu sei, colocar uma macdef diretiva antes que a primeira sub-rotina machine não tenha efeito, e não há como ter uma macro disponível antes que o comando open seja executado.

Sua macro funcionará se você abrir uma conexão ao site primeiro:

$ ftp ftp.nyxdata.com
ftp> $download_nyse_index

Para fazer o script de uma sessão FTP completa, passe a entrada para o comando ftp .

ftp ftp.nyxdata.com <<EOF
cd /OpenBook/SymbolMapping
bin
get SymbolMap.xml /tmp/SymbolMap.xml
quit
EOF

Se você está fazendo algo simples, use o wget ou o curl. Se você não quer que a senha esteja na linha de comando, você pode colocar em ~/.netrc ; wget o lê por padrão, e curl lê-lo se você passar a opção -n .

wget -O /tmp/SymbolMap.xml ftp://ftp.nyxdata.com/OpenBook/SymbolMapping/SymbolMap.xml
    
por 07.07.2015 / 01:25
1

Usando strace ftp no meu fedora, ele nem sequer leu ~/.netrc , a menos que eu o executasse com um nome de host na linha de comando.

Além disso, ele não reconheceu a macro até que eu adicionei explicitamente uma linha em branco depois dela, no final do arquivo! Então tente

$ ftp ftp.nyxdata.com
ftp> $download_nyse_index
    
por 06.07.2015 / 17:10

Tags