Use a linha de comando do FTP para obter o arquivo com o caminho absoluto

1

Eu estou querendo saber se com um utilitário de linha de comando FTP, você pode usar o comando get FTP para obter um arquivo com um caminho absoluto, ao contrário de ter cd em cada diretório sucessivo para obter um arquivo. / p>

Quando eu digito

ftp> get pub/sdc.tgz

Ou até mesmo isso (com uma ou duas barras antes do pub)

ftp> get /pub/sdc.tgz

Diz-me que não consegue encontrar o ficheiro:

local: /pub/sdc.tgz remote: /pub/sdc.tgz
ftp: local: /pub/sdc.tgz: No such file or directory

No entanto, quando eu faço

ftp> cd pub
ftp> get sdc.tgz

Funciona totalmente bem.

Existe alguma sintaxe correta na linha de comando do ftp para obter um arquivo com um caminho absoluto, ou eu preciso cd em pub para fazer isso?

(FYI: O que estou tentando fazer é usar um script PERL que é executado diariamente, que salva um arquivo em um servidor FTP e, em seguida, um script posterior que irá 1. obter o arquivo - que não me oponho a usar wget para fazer - e 2. excluir o arquivo depois que eu conseguir, o que eu preciso fazer com o FTP.Eu quero que o arquivo seja excluído pelo segundo script, de modo que, no futuro, se o primeiro script tem problemas para salvar o arquivo para o servidor FTP, o segundo script vai saber que houve um erro porque o arquivo não está lá, eu poderia salvá-lo com nomes diferentes também, mas eu não quero poluir o servidor FTP com uma tonelada de arquivos de dias diferentes .)

    
por Michael Plautz 09.08.2013 / 21:48

2 respostas

1

É porque quando você usa o Get do FTP e não especifica um nome de caminho / arquivo local, ele tenta usar o mesmo caminho / nome que o arquivo remoto.

Este erro:

ftp: local: /pub/sdc.tgz: No such file or directory

Está lhe dizendo que não pode encontrar o arquivo na máquina LOCAL. Então, minha suposição é que você não tem uma pasta "pub" na raiz da sua unidade local.

Syntax: get remote-file [local-file]

Parameter(s):

remote-file - Specifies the remote file to copy.

local-file - Specifies the name to use on the local computer. If not specified, the file is given the remote-file name.

Então, tente algo como:

ftp> get pub/sdc.tgz c:\temp\sdc.tgz

ou talvez

ftp> get pub/sdc.tgz .\sdc.tgz

Para baixá-lo para a pasta atual.

Veja aqui para mais informações sobre o uso Obter .

Pergunta SU relacionada: Posso especificar um destino com o comando ftp get?

    
por 09.08.2013 / 22:22
0

Você pode usar ncftpget , que usa caminhos absolutos, se puder instalá-lo em sua máquina cliente.

Além disso, se você estiver usando o Perl, pode dar uma olhada no módulo FTP .

    
por 09.08.2013 / 22:08

Tags