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 .