Cópia de arquivos

1. Cópia de arquivos

Jorge Visentini
jorgevisentini

(usa CentOS)

Enviado em 27/12/2012 - 12:05h

Bom dia pessoal!!!

Estou com um pepino aqui na empresa.
Não entendo nada de shell script então estou começando agora.......

Bom... o que preciso fazer é desenvolver um script que entre em determinadas pastas (mais ou menos 80 pastas), e dentro destas pastas tem mais pastas separadas por dias da semana (por exemplo 21-12-2012, 22-12-2012...), dentro destas pastas estão os arquivos que preciso copiar para outra pasta, não precisa ser com o mesmo nome... pode ser qualquer um... tipo... backup...

Bom... resumindo... não sei como fazer um controle de fluxo para entrar nestas pastas... uma por uma...

Valeu pessoal!!


  


2. Re: Cópia de arquivos

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 27/12/2012 - 12:25h

jvis escreveu:

Bom dia pessoal!!!

Estou com um pepino aqui na empresa.
Não entendo nada de shell script então estou começando agora.......

Bom... o que preciso fazer é desenvolver um script que entre em determinadas pastas (mais ou menos 80 pastas), e dentro destas pastas tem mais pastas separadas por dias da semana (por exemplo 21-12-2012, 22-12-2012...), dentro destas pastas estão os arquivos que preciso copiar para outra pasta, não precisa ser com o mesmo nome... pode ser qualquer um... tipo... backup...

Bom... resumindo... não sei como fazer um controle de fluxo para entrar nestas pastas... uma por uma...

Valeu pessoal!!


Como envolve salvar um emprego, eu vou contrariar um pouco minhas crenças pessoais e vou te dar algumas orientações sobre como fazer. Em outros casos, minha resposta seria um RTFM ou um pedido de acerto financeiro, então não acostume ;-)

A melhor maneira de você fazer isso é renomeando essas pastas para que o nome delas corresponda ao padrão ISO8601 (yyyymmdd), que aí elas se ordenam sozinhas e uma simples comparação de quem é o número maior ou menor te diz qual é a pasta mais atual.
Use o comando cp para copiar arquivos de uma pasta para outra.
Se for criado apenas um arquivo por dia, coloque no início do nome do arquivo a data da criação no mesmo formato ISO8601, do contrário coloque um indexador após a data (por exemplo 20121227001, 20122127002). Mantenha o indexador e a data apenas com caracteres numéricos, e depois deles você coloca um traço (ou outro caractere que não seja usado normalmente no nome) e o nome do arquivo (20121227001-arquivo.txt), que aí usando um cut -d'-' -f1 você pega só a parte numérica.

Agora, se você quiser um controle de versão aprende a usar o SubVersion, você não vai se arrepender.


3. Re: Cópia de arquivos

Jorge Visentini
jorgevisentini

(usa CentOS)

Enviado em 27/12/2012 - 12:32h

Cara, valeu pelo apoio mas acho que falei errado...

a hirarquia das pastas são... Ano/Mês/Dia e nao como eu tinha falado 2012-12-21... Então tem uma pasta 2012, dentro dela tem o mês e dentro desta tem as pastas separado por dia...

Acho que complicou um pouco mais...........


4. Re: Cópia de arquivos

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 27/12/2012 - 12:35h

jvis escreveu:

Cara, valeu pelo apoio mas acho que falei errado...

a hirarquia das pastas são... Ano/Mês/Dia e nao como eu tinha falado 2012-12-21... Então tem uma pasta 2012, dentro dela tem o mês e dentro desta tem as pastas separado por dia...

Acho que complicou um pouco mais...........



Pelo contrário, facilitou. O script tem que ser interativo ou automático? Se for automático, qual é o padrão de cópia dos arquivos?


5. Re: Cópia de arquivos

Jorge Visentini
jorgevisentini

(usa CentOS)

Enviado em 27/12/2012 - 12:37h

Tem que ser automático... o que quero é tirar o usuário da jogada...

Os arquivos estão todos em pdf.


6. Re: Cópia de arquivos

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 27/12/2012 - 12:39h

jvis escreveu:

Tem que ser automático... o que quero é tirar o usuário da jogada...

Os arquivos estão todos em pdf.


Então você tem que determinar como o script vai saber qual é a pasta de origem e qual vai ser a pasta destino.


7. Re: Cópia de arquivos

Jorge Visentini
jorgevisentini

(usa CentOS)

Enviado em 27/12/2012 - 14:31h

pois é... a origem é o seguinte...

temos +- 100 estabelecimentos... numerados de 600 a 799... é dentro destas pastas que ficam as outras que mencionei... então fica assim: \transfer\600\dacte_saida\2012\12\27

e vai em todos os estabelecimentos.... 601, 602, 603....

Bom... o diretório de destino pode ser o barra mesmo... \backup\...




8. Re: Cópia de arquivos

Perfil removido
removido

(usa Nenhuma)

Enviado em 27/12/2012 - 14:54h

Amigo,

o programa que faz "backup" no Linux se chama tar - tape arquive...

copiar não é backup... pois não copia os metadados (permissões).. então não dá para restaurar a partir de cópia...somente a partir de backup...

O tar tem várias formas de funcionamento... entre uma delas existe a possibilidade de criar uma lista de diretórios que você quer fazer backup.

olhe o manual do tar ou algum artigo sobre ele para ter uma ideia melhor sobre seu funcionamento.

kyetoy


9. Re: Cópia de arquivos

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 27/12/2012 - 14:58h

Não pode manter a hierarquia atual e copia tudo? pastas subpastas e arquivois?


10. Re: Cópia de arquivos

Jorge Visentini
jorgevisentini

(usa CentOS)

Enviado em 27/12/2012 - 17:17h

Pessoal beleza? Obrigado pelo interesse em resolver!!

É o seguinte... não é backup que eu quero fazer. O que acontece... Tem um programa de uma determinada empresa que fica escutando um determinado diretório. Eu preciso colocar todos os arquivos .pdf soltos dentro desta pasta mas para isso eu preciso entrar pasta por pasta e vascular se tem ou não .pdf para copiar para a pasta "\backup"....


11. Re: Cópia de arquivos

Luís Fernando C. Cavalheiro
lcavalheiro

(usa Slackware)

Enviado em 27/12/2012 - 17:24h

jvis escreveu:

Pessoal beleza? Obrigado pelo interesse em resolver!!

É o seguinte... não é backup que eu quero fazer. O que acontece... Tem um programa de uma determinada empresa que fica escutando um determinado diretório. Eu preciso colocar todos os arquivos .pdf soltos dentro desta pasta mas para isso eu preciso entrar pasta por pasta e vascular se tem ou não .pdf para copiar para a pasta "\backup"....


Se for isso nem precisa de script:

 $ for j in {600..700} ; do for i in /transfer/$j/dacte_saida/*/*/*/*pdf; do cp "$i" /backup/; done; done  


Lembrando: só estou dando a resposta porque é pra manter seu emprego, não acostume ;-)


12. Re: Cópia de arquivos

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 27/12/2012 - 17:34h

Esqueci de fecha a tag rsrsr:

find /pastaraiz-arquivos -iname *.pdf -maxdepth 1 -type f -mtime +3 | xargs cp /backup/




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts