shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: [shell-script] ftp


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] ftp
Date: Thu, 21 Oct 2004 12:07:20 -0300

Eduardo de Paula Neves (legal, lá em casa tem uma hacker Paula Neves :)
O que vc deseja é possível, e é feito desta maneira:

read -p "Login Name na Máquina Remota: " LName
read -sp "Senha: " Pw
ftp -ivn ftp.unicamp.br << FimFtp > /dev/null 2>&1
    user $LName $Pw  # Para não expor a senha
    bin
    mput *
    by
FimFtp

Porém, desta forma vc perde o controle do que está sendo transmitido e não
sabe se ocorreu algum erro. Por isso eu costumo fazer o que vc pediu com um
script +/- assim:

read -p "Login Name na Máquina Remota: " LName
read -sp "Senha: " Pw
for Arq in *
do
    ftp -ivn ftp.unicamp.br << FimFtp > /tmp/$$ 2>&1
        user $LName $Pw  # Para não expor a senha
        bin
        put $Arq
        by
FimFtp
    grep ^226 /tmp/$$ > /dev/null || echo Pau na transmissão
done

Qdo uma transmissão é bem sucedida o ftp te dá a seguinte msg:

226 Transfer complete.

Por isso eu fiz o grep.

Ihh gente! Estou ficando gagá! só agora que vi que o Eduardo queria pegar
arquivos de um diretório público e não mandar um arquivo. Mas assim mesmo
deixo o meu modo de trabalhar e acrescento que no caso de fazer um get e não
um put, eu faço da mesma maneira, porém faço um ftp anterior para pegar o
conteudo do diretório. Veja:

read -p "Login Name na Máquina Remota: " LName
read -sp "Senha: " Pw
ftp -ivn ftp.unicamp.br << FimFtp > /dev/null 2>&1
    user $LName $Pw  # Para não expor a senha
    ls . Arqs
    by
FimFtp 

# Neste momento eu tenho um ls -l do diretoio
# da unicamp no meu arquivo local Arqs.
# Vamos fazer o for cortando o desnecessário:

for Arq in $(tr -s " " < Arqs | cut -f9 -d" ")
do
    ftp -ivn ftp.unicamp.br << FimFtp > /tmp/$$ 2>&1
        user $LName $Pw  # Para não expor a senha
        bin
        put $Arq
        by
FimFtp
    grep ^226 /tmp/$$ > /dev/null || echo Pau na transmissão
done

Sem dúvida alguma, estes processos com for são bem mais demorados que os
feitos com mput ou mget, porém na minha instalação, é muito mais importante
a qualidade do que a velocidade. Fica na lista a minha dica.

Sucesso,
Julio Cezar Neves
- Programa de Software Livre -
Tel:+55 21 2528-7070 / +55 21 8112-9988
Fax: +55 21 2528-7646
mailto:address@hidden


| -----Mensagem original-----
| De: eduardo de paula neves [mailto:address@hidden]
| Enviada em: quarta-feira, 20 de outubro de 2004 23:13
| Para: address@hidden
| Assunto: [shell-script] ftp
| 
| 
| 
| é possivel um script que baixe todos os arquivos de um ftp?
| 
| por exemplo 
| 
| open
| ftp.unicamp.br
| anymous
| anymous
| 
| cd pub
| get *.*
| 
| ??
| 
| Grato
| 
| 
| ---------------------------------------------------------------------
| Esta lista não admite a abordagem de outras liguagens de 
| programação, como perl, C etc. Quem insistir em não seguir 
| esta regra será moderado sem prévio aviso.
| ---------------------------------------------------------------------
| Sair da lista: address@hidden
| ---------------------------------------------------------------------
| Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 


 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]