Senha muito complexa para um script bash de FTP?

1

Li várias questões relacionadas a esse assunto, mas nenhuma delas parece ter uma resposta válida para o meu problema. Eu só preciso escrever um script bash simples para obter alguns arquivos através de uma conexão FTP.

O roteiro normal foi este

#!/bin/bash
username="myFTPusername"
password="myFTPpass"
ftp -in hostname <<EOF
quote USER $username
quote PASS $password
lcd mylocaldirectory
cd FTPfolder
get filename
bye
EOF

E eu também tentei este comando, visto aqui

wget -O filename ftp://user:pass@hostname/filename

Mas nenhum deles funciona. Weid o suficiente, eu posso acessar sem problemas sem o script, e meu usuário e senha funcionam bem. Mas quando tento me conectar através do script ou do comando wget, recebo um "login incorreto".

Existe algum tipo de limitação no formato da senha? Tem caracteres diferentes, e um deles é um "$" . Meu único palpite é que esse cifrão é o problema no script. Alguma idéia para resolver isso? E se eu não conseguir alterar esse passe de FTP?

    
por javipas 16.06.2011 / 16:08

2 respostas

4

Usar wget (ou curl) é provavelmente sua melhor aposta. Se sua senha contiver metacaracteres de shell (como '$'), você precisará citá-la na linha de comando. Por exemplo:

wget -O filename 'ftp://user:pass@hostname/filename'

O uso de aspas simples inibe a expansão de '$' dentro da string citada.

    
por 16.06.2011 / 16:13
1

Em vez de armazenar os detalhes de autenticação no script, tente colocá-los em ~ / .netrc . contornar quaisquer problemas com o shell expandindo o caractere $ em sua senha.

    
por 16.06.2011 / 16:26