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: 2008/11/05 18:28 por cartola