Ferramentas do usuário

Ferramentas do site


post.sh

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Última revisãoAmbos lados da revisão seguinte
post.sh [2008/11/05 16:28] cartolapost.sh [2008/11/05 17:13] – tentando terminar ajustes para envio de timestamp - ainda ruim cartola
Linha 1: Linha 1:
 Script principal "post.sh", que chama "[[post.php]]" e envia arquivos para "[[recebe.php]]" Script principal "post.sh", que chama "[[post.php]]" e envia arquivos para "[[recebe.php]]"
  
-Atenção: esse script se tornou dependente de FreeBSD com o uso do "ls -lT" para obter timestamp do arquivo na origem. Não obstante funcionará, sem ajustar timestamp, em outros sistemas.+**Atenção:** esse script se tornou dependente de FreeBSD com o uso do "ls -lT" para obter timestamp do arquivo na origem. Não obstante funcionará, sem ajustar timestamp, em outros sistemas.
  
  
 #!/bin/sh #!/bin/sh
 + 
 # Script para enviar arquivos via web para servidor http. Este servidor precisa ter o arquivo # Script para enviar arquivos via web para servidor http. Este servidor precisa ter o arquivo
 # recebe.php especifico. A ideia eh partir os arquivos a serem enviados em blocos de tamanho # recebe.php especifico. A ideia eh partir os arquivos a serem enviados em blocos de tamanho
 # limite para transferencia. # limite para transferencia.
 + 
 LIMITE="5000000" LIMITE="5000000"
 WGET="/usr/local/bin/wget" WGET="/usr/local/bin/wget"
Linha 40: Linha 40:
       /usr/local/bin/php -e post.php $ARQFIN       /usr/local/bin/php -e post.php $ARQFIN
       $WGET -O saida --post-file=query_string $URL \       $WGET -O saida --post-file=query_string $URL \
-            > /dev/null 2> /dev/null+     > /dev/null 2> /dev/null
       MD5local=`$MD5CMD $ARQFIN | awk '{print $NF}'`       MD5local=`$MD5CMD $ARQFIN | awk '{print $NF}'`
       MD5remoto=`cat saida | grep "$ARQFIN : " | awk '{print $NF}'`       MD5remoto=`cat saida | grep "$ARQFIN : " | awk '{print $NF}'`
       if [ "$MD5local" = "$MD5remoto" ]; then       if [ "$MD5local" = "$MD5remoto" ]; then
-        echo "`date '+%Y/%m/%d-%H:%M:%S'` - $ARQFIN transmitido ok."+ echo "`date '+%Y/%m/%d-%H:%M:%S'` - $ARQFIN transmitido ok."
       else       else
-        echo "`date '+%Y/%m/%d-%H:%M:%S'` - $ARQFIN transmitido com erro."+ echo "`date '+%Y/%m/%d-%H:%M:%S'` - $ARQFIN transmitido com erro."
       fi       fi
     done     done
Linha 53: Linha 53:
     if [ "$ARQ" != "$ENVIAR" ]; then     if [ "$ARQ" != "$ENVIAR" ]; then
       rm -f ${ARQ}.*       rm -f ${ARQ}.*
 +      $WGET -O saida --post-data="juntar=$ARQ" $URL > /dev/null 2> /dev/null
 +      # conferindo arquivo com md5
 +      MD5local=`$MD5CMD $ARQ | awk '{print $NF}'`
 +      MD5remoto=`cat saida | grep "$ARQ : " | awk '{print $NF}'`
       # calculando timestamp do arquivo para acertar no servidor       # calculando timestamp do arquivo para acertar no servidor
       export LC_ALL="en_us.ISO8859-1"       export LC_ALL="en_us.ISO8859-1"
       TS=`ls -lT $ARQ | awk '{printf "%02s %s %s %s\n", $6, $7, $8, $9}' | \       TS=`ls -lT $ARQ | awk '{printf "%02s %s %s %s\n", $6, $7, $8, $9}' | \
-        sed -e 's/Jan/01/'+ sed -e 's/Jan/01/'
-            -e 's/Feb/02/' -e 's/Fev/02/'+     -e 's/Feb/02/' -e 's/Fev/02/'
-            -e 's/Mar/03/'+     -e 's/Mar/03/'
-            -e 's/Apr/04/' -e 's/Abr/04/'+     -e 's/Apr/04/' -e 's/Abr/04/'
-            -e 's/May/05/' -e 's/Mai/05/'+     -e 's/May/05/' -e 's/Mai/05/'
-            -e 's/Jun/06/'+     -e 's/Jun/06/'
-            -e 's/Jul/07/'+     -e 's/Jul/07/'
-            -e 's/Aug/08/' -e 's/Ago/08/'+     -e 's/Aug/08/' -e 's/Ago/08/'
-            -e 's/Sep/09/' -e 's/Set/09/'+     -e 's/Sep/09/' -e 's/Set/09/'
-            -e 's/Oct/10/' -e 's/Out/10/'+     -e 's/Oct/10/' -e 's/Out/10/'
-            -e 's/Nov/11/'+     -e 's/Nov/11/'
-            -e 's/Dec/12/' -e 's/Dez/12/'+     -e 's/Dec/12/' -e 's/Dez/12/'
-            -e 's/://' -e 's/:/./' | \ +     -e 's/://' -e 's/:/./' | \ 
-        awk '{printf "%s%s%s%s",$4,$2,$1,$3}'+ awk '{printf "%s%s%s%s",$4,$2,$1,$3}'
-      $WGET -O saida --post-data="juntar=$ARQ&ts=$TS" $URL > /dev/null 2> /dev/null +      # retomando verificacao md5
-      MD5local=`$MD5CMD $ARQ | awk '{print $NF}'+
-      MD5remoto=`cat saida | grep "$ARQ : " | awk '{print $NF}'`+
       if [ "$MD5local" = "$MD5remoto" ]; then       if [ "$MD5local" = "$MD5remoto" ]; then
-        echo "`date '+%Y/%m/%d-%H:%M:%S'` - $ARQ juntado ok." + echo "`date '+%Y/%m/%d-%H:%M:%S'` - $ARQ juntado ok." 
-        mv $ARQ foi-$ARQ+ mv $ARQ foi-$ARQ
       else       else
-        echo "`date '+%Y/%m/%d-%H:%M:%S'` - $ARQ juntado com erro."+ echo "`date '+%Y/%m/%d-%H:%M:%S'` - $ARQ juntado com erro."
       fi       fi
     fi     fi
 +    # finalizando ajuste de data remoto
 +    $WGET -O saida --post-data="touch=$ARQ&ts=$TS" $URL > /dev/null 2> /dev/null
     rm -f saida query_string     rm -f saida query_string
   fi   fi
 done done
  
post.sh.txt · Última modificação: 2009/02/17 19:20 por cartola