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

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

Re: RES: [shell-script] Erro com transferencia automática via FTP


From: eduardo_a_s_amaral
Subject: Re: RES: [shell-script] Erro com transferencia automática via FTP
Date: Tue, 14 May 2013 17:10:43 -0000
User-agent: eGroups-EW/0.82

Olá pessoal, obrigado pelas respostas rápidas.

Na verdade este erro com "END_FUNCTION" e "END_OF_FUNCTION" foi um erro meu na 
hora de formatar didaticamente o texto que eu pretendia exibir aqui. As strings 
são iguais no meu script.

O que fez a diferença foi mesmo a observação do Julio. Tambeḿ fiz a 
correção observada pelo Osvaldo.
Agora o script funciona e vou deixa-lo aqui para servir de ajuda para quem 
precisar:



#!/bin/bash

FTP()
{
#Envia o arquivo para o servidor FTP
ftp -inp $HOST << END_OF_FUNCTION
        user $USER $PASS
        hash
        lcd ${ARQ}/${RMT_DIR}
        cd ${RMT_DIR}
        put $FILE
        bye
A linha seguinte nao pode ser alterada. A string deve ser igual a que abre a 
sessao e deve estar no inicio da linha
END_OF_FUNCTION
return $?
}

main()
{
        ARQ="meu/diretetorio"
        LOGS="${ARQ}/logs"
        HOST="servidor_ftp.com.br"
        USER="ftp_user"
        PASS="ftp_user_pass"
        RMT_DIR="Dir/remoto"
        FILE="arquivo"
        
        DATA=$(date +%Y-%m-%d)
        # Condicoes que verificam se o arquivo existe e se esta atualizado.
        if [ -e ${ARQ}/${RMT_DIR}/${FILE} ]
        then
                #Se o arquivo existe, obtem sua data:
                DATA_DO_ARQUIVO=$(stat --format=%y ${ARQ}/${RMT_DIR}/${FILE} | 
awk '{print $1}')
                
                if [ "$DATA_DO_ARQUIVO" == "$DATA" ]
                then 
                        echo "Arquivo atualizado. iniciando tranferencia via 
FTP"
                        # Vai para a funcao FTP
                        FTP $ARQ $HOST $USER $PASS $RMT_DIR $FILE
                        RETORNO_DO_FTP=$?
                        echo "FTP concluido, O programa retornou: 
${RETORNO_DO_FTP}"
                else
                        echo "Arquivo desatualizado, transferencia cancelada"
                        exit 1;
        fi  
        else
                echo "Arquivo inexistente, transferencia cancelada"
                exit 1;
        fi
        exit 0;
}
main


É isso pessoal, muito obrigado pela força!




reply via email to

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