post.sh
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Próxima revisãoAmbos lados da revisão seguinte | |||
post.sh [2008/10/15 09:33] – Nova página: Script principal "post.sh", que chama "[[post.php]]" e envia arquivos para "[[recebe.php]]" <source lang="bash"> #!/bin/sh # Script para enviar arquivos via web para servidor http. E... cartola | post.sh [2008/11/05 16:28] – 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á, | ||
Linha 13: | Linha 15: | ||
URL=" | URL=" | ||
export http_proxy=" | export http_proxy=" | ||
+ | |||
+ | if [ -f saida ]; then | ||
+ | echo "Erro: arquivo \" | ||
+ | exit | ||
+ | fi | ||
for ARQ in $*; do | for ARQ in $*; do | ||
- | # Verificando | + | # Verificando |
- | | + | |
- | if [ $TAM -gt $LIMITE | + | TESTE=`grep ERRO saida` |
- | | + | 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 |
- | # Juntando arquivo remoto, se necessario | + | for ARQFIN in $ENVIAR; do |
- | if [ " | + | / |
- | rm -f ${ARQ}.* | + | $WGET -O saida --post-file=query_string $URL \ |
- | $WGET -O saida --post-data=" | + | > /dev/null 2> /dev/null |
- | MD5local=`$MD5CMD $ARQ | awk ' | + | MD5local=`$MD5CMD $ARQFIN | awk ' |
- | MD5remoto=`cat saida | grep "$ARQ : " | awk ' | + | MD5remoto=`cat saida | grep " |
- | if [ " | + | if [ " |
- | echo "`date ' | + | echo "`date ' |
- | mv $ARQ foi-$ARQ | + | else |
- | else | + | echo "`date ' |
- | echo "`date ' | + | fi |
+ | | ||
+ | # 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.txt · Última modificação: 2009/02/17 19:20 por cartola