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

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

Re: [shell-script] uma 'luz' com script de FTP


From: piuras
Subject: Re: [shell-script] uma 'luz' com script de FTP
Date: Sat, 11 Sep 2004 00:02:20 -0300
User-agent: Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.0.2) Gecko/20030208 Netscape/7.02

Bem eu sugiro que você coloque todo o conteúdo do "ftp_transfer.lock" numa variável, com cada item separado por espaço assim "$VARIAVEL=arq1.txt arq2.txt ....".
Depois use mput ao invés de put, tipo:  "mput  $VARIAVEL"
E finalmente só para prevenir erros coloque : bin e prompt no começo da chamada de ftp. Talvez você tenha que gerar vários mput para conseguir mandar todos os arquivos devido ao tamanho máximo da string de parâmetros.

Espero que isto ajude,

boa sorte.


Marcelo escreveu:

Olá Pessoal,

Como eu nunca mandei nada para a lista, deixa antes eu me apresentar:
Trabalho com web há muuuito tempo (desde quando ela nao existia) e
hoje trabalho com Java/J2EE. Nunca tinha precisado me aventurar com
Shell Script, mas como tudo tem sua primeira vez, chegou a minha  ;-)
Mas nem sempre os arquivos e as pesquisas na web ajudam...e para isso
existem os amigos da lista  :)

Meu problema é o seguinte:

Tenho um diretório em que por minuto são depositados vários arquivos
(mais de 500) e a tarefa do script é enviar esses arquivos por FTP e
excluir eles logo após o envio. Arquivos chegam nesse dir inclusive
enquanto estou fazendo o FTP deles.

Para isso, pensei no seguinte fluxo:

- gerar uma lista com os arquivos do dir;
- envia cada arquivo dessa lista em uma unica conexao FTP;
- apagar os arquivos dessa lista.

Fácil, né? Mas na hora do script não saiu como imaginava. Olhe abaixo:

#!/bin/sh

INPUTDIR=/tmp/direntrada
REMOTEDIR=/tmp/dirsaida
touch ftp_transfer.lock echo "Criando lista de arquivos..."
for ARQ in `ls -t *.txt`
do echo $ARQ >> ftp_transfer.lock done
echo "Inciando transmissao FTP..."
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $REMOTEDIR
put *.txt       <<<atencao a esta linha>>>
quit
END_SCRIPT

echo "fim da transmissao" echo "inicio da exclusao..." for ARQ in `cat ftp_transfer.lock` do rm $ARQ done
rm ftp_transfer.lock
exit 0


A criacao e a exclusao dos arquivos na lista funciona bem.
O que eu preciso -e nao consigo fazer-  é colocar um loop para fazer
um "put" de cada arquivo na lista dentro do script do FTP..tentei um
simples for, abrir um subprocesso, mas tudo sem sucesso.

Alguém poderia dar uma luz para algo tao simples, mas tão difícil para
um principiante em shell script?

[]´s,
Marcelo Leite



---------------------------------------------------------------------
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]