
Gostaria de saber se, com um utilitário de linha de comando FTP, você pode usar o get
comando FTP para obter um arquivo com um caminho absoluto, em vez de precisar entrar cd
em cada diretório sucessivo para obter um arquivo.
Quando eu digito
ftp> get pub/sdc.tgz
Ou mesmo isso (com uma ou duas barras antes de pub)
ftp> get /pub/sdc.tgz
Ele me diz que não consegue encontrar o arquivo:
local: /pub/sdc.tgz remote: /pub/sdc.tgz
ftp: local: /pub/sdc.tgz: No such file or directory
No entanto, quando eu faço isso
ftp> cd pub
ftp> get sdc.tgz
Funciona perfeitamente bem.
Existe alguma sintaxe correta na linha de comando do FTP para obter um arquivo com um caminho absoluto ou preciso cd
primeiro pub
fazer isso?
(Para sua informação: o que estou tentando fazer é usar um script PERL executado diariamente que salva um arquivo em um servidor FTP e, em seguida, um script posterior que 1. obterá o arquivo - o que não me oponho a usar wget
para fazer - e 2. excluir o arquivo depois de obtê-lo, o que preciso fazer com o FTP. Quero que o arquivo seja excluído pelo segundo script, para que no futuro, se o primeiro script tiver problemas para salvar o arquivo no servidor FTP, o segundo script saberá que houve um erro porque o arquivo não está lá. Eu poderia salvá-lo com nomes diferentes também, mas não quero poluir o servidor FTP com uma tonelada de arquivos de dias diferentes.)
Responder1
É porque quando você usa o Get do FTP e não especifica um caminho/nome de arquivo local, ele tenta usar o mesmo caminho/nome do arquivo remoto.
Esse erro:
ftp: local: /pub/sdc.tgz: No such file or directory
Está dizendo que não é possível encontrar o arquivo na máquina LOCAL. Então, minha suposição seria que você não tem uma pasta "pub" na raiz da sua unidade local.
Sintaxe:pegararquivo remoto [arquivo local]
Parâmetro(s):
arquivo remoto - Especifica o arquivo remoto a ser copiado.
arquivo local - Especifica o nome a ser usado no computador local.Se não for especificado, o arquivo receberá o nome de arquivo remoto.
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.
Veraquipara mais informações sobrePegaruso.
Pergunta SU relacionada:Posso especificar um destino com o comando ftp get?
Responder2
Você pode usar ncftpget
, que usa caminhos absolutos, se puder instalá-lo em sua máquina cliente.
Além disso, se você estiver usando Perl, você pode dar uma olhada noMódulo FTP.