Conectando-se ao FTP através da linha de comando do Linux

4

Eu preciso fazer upload de arquivos via FTP na linha de comando. Eu tenho essa informação: uma URL, um nome de usuário, uma senha, uma porta e o fato de que devo usar o modo passivo.

Como faço upload de um arquivo com essas informações?

Note que estou tendo que fazer isso a partir de um script, portanto, preciso inserir essas informações automaticamente.

    
por skline 14.12.2011 / 22:21

3 respostas

6

Existem muitos clientes CLI (linha de comando) por aí. O mais comum é simplesmente ftp . Você tem <host> , <port> , <username> , <pass> e "modo passivo". Usando ftp , você deve fazer:

ftp -p <host> <port>

-p switch significa "usar modo passivo". Então você será perguntado sobre seu nome de usuário e senha. Após o login bem-sucedido (o servidor permite que você saiba disso), você pode dar alguns comandos. Digite help e pressione "enter" para obter a lista de comandos disponíveis. Você pode usar, por exemplo, cd , ls , mkdir ftp comandos para alterar o diretório de trabalho (no servidor), listar seu conteúdo e criar um novo diretório. Se antes de executar ftp você estava no mesmo diretório que os arquivos que deseja enviar, use o comando put ou mput para iniciar a transferência real. Primeiro comando envia um arquivo, segundo vários arquivos usando globbing (por exemplo, mput *pdf enviará todos os arquivos pdf no diretório atual). Para obter ajuda simples sobre o comando, você pode usar help <command> em ftp app. Eu diria que é o suficiente para começar. Para o resto, use man ftp ou info ftp . Para finalizar o tipo de sessão ftp bye . Existem outras maneiras de fazer isso, mas eu acho que esta é apenas elegante:).

Quanto aos outros clientes, algumas opções interessantes foram apontadas aqui, mas eu pessoalmente uso lftp . É apenas sólido, bom, flexível e fácil de usar o cliente FTP. Se você preferir uma abordagem mais visual enquanto estiver sob a linha de comando, poderá usar mc ou "Midnight Command". É um gerenciador de arquivos de aplicação geral que utiliza o paradigma Norton Commander, mas também pode ser usado para acessar servidores ftp.

    
por 15.12.2011 / 01:37
3

Eu recomendo ncftp 's ncftpput . É muito programável e é útil para esse tipo de coisa.

    
por 14.12.2011 / 22:51
2

Não há problema neste. Há muitos exemplos em Gist . Basta ir ao site e procurar por "FTP Script".

Aqui está um que encontrei:

#!/bin/sh

HOST='some.ftp.server'
USER='myuser'
PASSWD='mypass'
FILE='myfile'

ftp -n $HOST <<END_SCRIPT
user ${USER} ${PASSWD}
cd /path/to/something
get $FILE
quit
END_SCRIPT

exit 0

Além disso, Linha de Comando Foo é outro bom site, onde eu encontrei este exemplo impressionante de um arquivo ftp-ish transferência:

Create a file server, listening in port 7000:

while true; do nc -l 7000 | tar -xvf -; done

Then, at client side:

tar c myfile | nc localhost 7000 ##Send file myfile to server
tar c mydir | nc localhost 7000 ## Send directory mydir to server
    
por 15.12.2011 / 00:08