ftp e shebang

7

Existe uma maneira de criar e copiar pequenos scripts ftp?

Por exemplo:

#!/usr/bin/ftp
open 192.168.1.1
put *.gz
quit

Alguma opinião?

    
por user3454 04.05.2011 / 01:10

1 resposta

9

Não com os programas ftp em que me deparei, pois eles esperam um script em sua entrada padrão, mas um shebang passaria o nome do script em sua linha de comando.

Você pode usar um documento aqui para passar um script para ftp por meio de um wrapper de shell.

#!/bin/sh
ftp <<EOF
open 192.168.1.1
put *.gz
EOF

Lftp aceita um nome de script passado como argumento.

#!/usr/bin/lftp -f
open 192.168.1.1
put *.gz
O

Ncftp vem com duas ferramentas ncftpget e ncftpput para lotes simples de gets ou puts.

Zsh inclui um módulo FTP . Usar um shell adequado em vez de um script FTP direto tem a vantagem de poder reagir a falhas.

#!/bin/zsh
zmodload zsh/zftp
open 192.168.1.1
put *.gz

É claro que há muitas outras linguagens que você pode usar: Perl, Python, Ruby, etc.

Outra abordagem é montar o servidor FTP como um diretório e, em seguida, usar cp (ou rsync ou outras ferramentas) para copiar arquivos. Existem muitos sistemas de arquivos FUSE para acesso FTP, principalmente CurlFtpFS e LftpFS .

Observe que, se você planeja usar a autenticação (provavelmente se estiver fazendo o upload) e tiver controle sobre o servidor, é melhor ter acesso ao SSH. É mais seguro e mais flexível. Para copiar arquivos por SSH, você pode usar scp ou sftp , ou rsync para sincronização eficiente (se alguns dos arquivos já estar lá), ou Unison (para sincronização bidirecional), ou monte com SshFS .

    
por 04.05.2011 / 01:51