Esses 7 arquivos devem ser baixados em um diretorio qualquer, porem a duvida...
Esses arquivos nao possuem parametro de data, e sao atualizados a cada 30 min.
o que precisa fazer é: baixar cada um dos 7 arquivos a cada 30 minutos, e esse arquivo devera ser diferente, considerando diferente = a tamanho do arquivo ou data de modificacao.
Apos baixar, os mesmos devem ser renomeados no diretorio destino conforme exemplo:
Seria na montagem do scipt para automatizar essa tarefa, no caso a logica.
4. Re: Script para download via FTP
danielmirandatmusa Ubuntu
Post recolhido
Enviado em 07/04/2016 - 13:40h
Cara, no caso para automatizar o script, a melhor forma é utilizar o expect. Estude scripts com expect.
No caso de data e hora de modificação dos arquivos, utilize o comando
$ ls -l [nome_do_arquivo]
Então utilize alguma forma de tratar a saída deste comando. Para isso pode utilizar os comandos awk, cut...
Estude estas ferramentas, você encontrará a melhor forma de criar o script.
5. Re: Script para download via FTP
textmodeusa Slackware
Post recolhido
Enviado em 07/04/2016 - 14:43h
Baixe os arquivos como pretende e capture a data de modificação. Em seguida mova o arquivo já com os parâmetros de data resolvidos. Se realmente tiver importância comparar conteúdo, sugiro utilizar md5 ou sha (melhor). Daí é só estudar os comandos já sugeridos pelos colegas aqui. Se enroscar, manda a parte relevante explicando o que houve.
6. Re: Script para download via FTP
R3nanusa Debian
Post recolhido
Enviado em 07/04/2016 - 14:47h
pra te ajudar um pouco, comece buscando o arquivo no servidor ftp com o comando:
renomei o arquivo antigo, de um nome para o arquivo novo, verifique se eles sao iguais, caso seja apague o arquivo que acabou de salvar caso não mantenha-o
7. Re: Script para download via FTP
msoliverusa Debian
Post recolhido
Enviado em 07/04/2016 - 19:34h
gsanches escreveu:
Ola, estou com uma certa dificuldade para criar um script para download de arquivos via FTP.
Segue alguns pontos.
Esses 7 arquivos devem ser baixados em um diretório qualquer, porem a duvida...
Esses arquivos não possuem parâmetros de data, e sao atualizados a cada 30 min.
o que precisa fazer é: baixar cada um dos 7 arquivos a cada 30 minutos, e esse arquivo devera ser diferente, considerando diferente = a tamanho do arquivo ou data de modificação.
Apos baixar, os mesmos devem ser renomeados no diretório destino conforme exemplo:
arquivo1_dd/mm/yyyy hh:mm.txt
Podem me ajudar?
Boa noite, gsanches.
Vamos lá....
Troquei a "/" do nome do arquivo por "-", o motivo é simples...
Não é aceito "/" no nome do arquivo!
Segue uma "prévia" do Código:
#!/bin/bash
#######################
## marcelo oliver ##
## Abril/2016-Rev:00 ##
#######################
DATA="printf "%\(_%d-%m-%Y_%H-%M\)T".txt"
DOWNLOAD() {
for ((x=1;x<=7;x++));do
wget --ftp-user=USER --ftp-password=PASSWORD ftp://DOMINIO/PASTA"$x"/SUB"$x"/SUBS_"$x"/arquivo"$x".txt
sleep 1
#AQUI SERA FEITA A COMPARAÇÃO
rename 's/(arquivo'$x')(\.txt)/$1'$($DATA)'/' *.txt
done
sleep 1800
DOWNLOAD
}
DOWNLOAD
A lógica é:
Inicia o laço (de 1 a 7), para cada unidade (da contagem), baixa o arquivo,
compara o atual com o anterior, a comparação só ocorrerá a partir do segundo ciclo, após o download dos 07 arquivos.
Se for diferente, altera o nome do atual para o padrão e remove o anterior,
senão, remove o atual(baixado), dá uma pausa de 1 minuto e reinicia.
Quando acabar o laço (chegar ao nº 7), aguarda 30 minutos e recomeça o processo ....
Estou desenvolvendo a parte para a comparação do arquivo.
Será comparado com o ultimo baixado . . .
Exemplo: arquivo1_07-04-2016_18-29.txt com arquivo1.txt
---------------------------------------------------------------------------------------- EDITADO em 08-04-2016 00:30h FINALIZADO ----------------------------------------------------------------------------------------
#!/bin/bash
#######################
## marcelo oliver ##
## Abril/2016-Rev:01 ##
#######################
DATA="printf "%\(_%d-%m-%Y_%H-%M\)T".txt"
PAUSA() {
echo -e "\n O "$arqAtual" é igual ao "$ArqAnt".\n Dentro de 1 minuto o processo será reiniciado\n"
sleep 60
DOWNLOAD
}
DOWNLOAD
##FIM DO SCRIPT #######################################
----------------------------------------------------------------------------------------
Se a resposta for satisfatória, marque-a como a MELHOR, dessa forma, ganho uns pontos.
Isso incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :) ----------------------------------------------------------------------------------------