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

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

Re: [shell-script] Verificar se arquivo existe utilizando FTP e BASH


From: Julio C. Neves
Subject: Re: [shell-script] Verificar se arquivo existe utilizando FTP e BASH
Date: Fri, 17 Apr 2009 13:45:24 -0300

Fala Thiago,
existem 2 formas de testar se seu ftp foi bem sucedido.
1a. Forma:
a sintaxe do ls (do ftp) te pemite que vc gera a saída em um arquivo local.
Veja este trecho do man ftp:
     ls [remote-directory] [local-file]
                 Print a listing of the contents of a directory on the
remote machine.  The listing includes any system-
                 dependent information that the server chooses to include;
for example, most UNIX systems will produce
                 output from the command ‘ls -l’.  (See also nlist.)  If
remote-directory is left unspecified, the cur‐
                 rent working directory is used.  If interactive prompting
is on, ftp will prompt the user to verify
                 that the last argument is indeed the target local file for
receiving ls output.  If no local file is
                 specified, or if local-file is ‘-’, the output is sent to
the terminal.

Assim sendo, após o ftp vc faz um grep em [local-file] para verificar se o
arquivo está lá.
2a. forma (essa eu acho melhor):
Faça:
*ftp -ivn $FTPSERVER > /tmp/ftp$$ <<BLOCO
*
Repare que incluí a opção* -v *e um arquivo na saída. A opção* -v *(verbose)
gera um monte de linhas, cada uma começada por um código numérico. Uma delas
é mais ou menos assim:
*226 transmission successfully
*
Faça um teste para verificar se o código é realmente 226, mas se não me
falha a memória (e está falhando muito ;) é isso mesmo. Aí basta vc fazer
assim:

*grep -q ^226 /tmp/ftp$$ && echo Me dei bem; rm /tmp/ftp$$
*
Se vier aqui no
botequim<http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo001#Here_Document>,
vc terá maiores detalhes, escrito em português e cheio de exemplos.
-- 
Abração,
Julio
*Cursos de Shell e Zenity nos finais de semana:
- Em SP ligue (11) 2125-4747;
- Em DF ligue (61) 3223-3000;
- No RJ brevemente;
- Turmas fechadas em outras cidades ligue (21) 8112-9988
*

2009/4/16 Thiago Guedes Pereira <address@hidden>

>
>
> Boa tarde Pessoal.
>
> Para enviar o backup via FTP eu criei a função:
>
> function envia_ftp {
>
> ftp -i -n $FTPSERVER <<BLOCO
> user $USER $PASS
> passive
> cd mail-pop/
> mkdir $DATAINICIO
> cd $DATAINICIO
> put $1
> quit
> BLOCO
>
> }
>
> Só que as vezes o envio não é bem sucedido. Então queria fazer algo do
> tipo.
>
> 1º Envio o backup por FTP
> 2º Acesso o FTP e verifico se o arquivo está lá.
>
> Pensei em algo do tipo:
>
> function verifica_ftp {
>
> ftp -i -n $FTPSERVER <<BLOCO
> user $USER $PASS
> passive
> cd mail-pop/
> cd $DATAINICIO
> ls $1
> quit
> BLOCO
>
> }
>
> * Só que na parte do *ls* eu precisava redirecionar a saída do comando para
> uma variável... Alguem com uma boa idéia?
>
> --
> Att,
> Thiago Guedes Pereira
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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