post.sh
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
| post.sh [2008/11/05 18:28] – cartola | post.sh [2009/02/17 22:20] (atual) – nova versao que faz upload direto para subpasta cartola | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| - | Script principal " | + | Script principal " |
| - | 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á, | + | **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á, |
| #!/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=" | LIMITE=" | ||
| WGET="/ | WGET="/ | ||
| MD5CMD="/ | MD5CMD="/ | ||
| URL=" | URL=" | ||
| + | RECEBE=" | ||
| + | PASTA=" | ||
| export http_proxy=" | export http_proxy=" | ||
| + | LOG=`date +%Y%m%d`-log.txt | ||
| - | if [ -f saida ]; then | + | # Antes de tudo, criando pasta destino |
| - | echo "Erro: arquivo \" | + | $WGET -O saida --post-data="criapasta=$PASTA" |
| - | exit | + | # Depois altera a URL para postar direto para a pasta criada |
| - | fi | + | URL=" |
| for ARQ in $*; do | for ARQ in $*; do | ||
| - | # Verificando | + | # Verificando |
| - | | + | |
| - | TESTE=`grep ERRO saida` | + | if [ $TAM -gt $LIMITE |
| - | if [ "$TESTE" = " | + | |
| - | | + | ENVIAR=`ls ${ARQ}.*` |
| else | else | ||
| - | # Verificando necessidade de partir | + | |
| - | | + | fi |
| - | if [ $TAM -gt $LIMITE | + | |
| - | | + | for ARQFIN in $ENVIAR; do |
| - | ENVIAR=`ls ${ARQ}.*` | + | / |
| + | | ||
| + | > /dev/null 2> /dev/null | ||
| + | MD5local=`$MD5CMD $ARQFIN | ||
| + | MD5remoto=`cat saida | grep " | ||
| + | if [ "$MD5local" | ||
| + | | ||
| else | else | ||
| - | | + | |
| fi | fi | ||
| - | # Enviando arquivo inteiro ou pedacos | + | |
| - | for ARQFIN in $ENVIAR; do | + | # Juntando arquivo remoto, se necessario |
| - | / | + | if [ " |
| - | $WGET -O saida --post-file=query_string $URL \ | + | rm -f ${ARQ}.* |
| - | > /dev/null 2> /dev/null | + | $WGET -O saida --post-data=" |
| - | MD5local=`$MD5CMD $ARQFIN | awk ' | + | MD5local=`$MD5CMD $ARQ | awk ' |
| - | MD5remoto=`cat saida | grep " | + | MD5remoto=`cat saida | grep "$ARQ : " | awk ' |
| - | if [ " | + | if [ " |
| - | echo "`date ' | + | echo "`date ' |
| - | else | + | mv $ARQ foi-$ARQ |
| - | echo "`date ' | + | else |
| - | fi | + | echo "`date ' |
| - | | + | |
| - | # Juntando arquivo remoto, se necessario | + | |
| - | # Aproveitando para acertar data do arquivo conforme arquivo local | + | |
| - | | + | |
| - | rm -f ${ARQ}.* | + | |
| - | # calculando timestamp do arquivo para acertar no servidor | + | |
| - | export LC_ALL=" | + | |
| - | TS=`ls -lT $ARQ | awk ' | + | |
| - | sed -e ' | + | |
| - | -e ' | + | |
| - | -e ' | + | |
| - | -e ' | + | |
| - | -e ' | + | |
| - | -e ' | + | |
| - | -e ' | + | |
| - | -e ' | + | |
| - | -e ' | + | |
| - | -e ' | + | |
| - | -e ' | + | |
| - | -e ' | + | |
| - | -e ' | + | |
| - | awk ' | + | |
| - | | + | |
| - | MD5local=`$MD5CMD $ARQ | awk ' | + | |
| - | MD5remoto=`cat saida | grep "$ARQ : " | awk ' | + | |
| - | if [ " | + | |
| - | echo "`date ' | + | |
| - | mv $ARQ foi-$ARQ | + | |
| - | else | + | |
| - | echo "`date ' | + | |
| - | fi | + | |
| fi | fi | ||
| - | rm -f saida query_string | ||
| fi | fi | ||
| + | rm -f saida query_string | ||
| done | done | ||
post.sh.1225909715.txt.gz · Última modificação: por cartola
