Copiar milhões de imagens

1. Copiar milhões de imagens

Gabriel Konig Lara
konigabriel

(usa Fedora)

Enviado em 23/06/2009 - 10:43h

Olá pessoal,

Gostaria de uma ajudar/sugestão de vocês!

Trabalho em uma empresa que digitaliza alguns documentos. O formato fica como .TIF. Temos 1/2 dúzia de imagens que chega nos 2TB rsrs!!!

A minha missão é modificar a estrutura de armazenamento dessas imagens, ou seja, quero copiar todas para um outro local só que em diretórios diferentes.
Minha idéia seria por exemplo:
cp -rfav /cliente/projeto/codigo/id/*.tif /destino/novodir/novodir/novodir/.
O que acontece é que os diretórios de destino (novodir) não existem então este comando não funciona...
Alguem tem uma sugestão para meu problema?

Obrigado pela atenção!


  


2. Re: Copiar milhões de imagens

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 23/06/2009 - 11:02h

Fale pra gente exatamente qual seria o nome desses diretórios novos. Assim fica fácil criá-los através d shell script.


3. Re: Copiar milhões de imagens

Gabriel Konig Lara
konigabriel

(usa Fedora)

Enviado em 23/06/2009 - 11:17h

Os diretórios de destino que não existe ainda eu não defini mas vamos colocar um exemplo "/destino/comp/project/sysid/release/."


4. Re: Copiar milhões de imagens

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 23/06/2009 - 11:38h

Ok... mas ainda não entendi uma coisa: vc disse q quer gravar os arquivos em diretórios diferentes, ou seja, organiza-los melhor, então vc deve t uma referência na criação dos diretórios aos arquivos. Seria por data?
Tou t perguntando isso pq fica mais fácil fazer o script, entendeu?



5. Re: Copiar milhões de imagens

Toor Tecnologia
toortecnologia

(usa Slackware)

Enviado em 23/06/2009 - 13:52h

mkdir /destino/novodir/novodir/novodir/
cp -rfav /cliente/projeto/codigo/id/*.tif /destino/novodir/novodir/novodir/

não falo mais porque não entendi nadinha do que você quer


6. Re: Copiar milhões de imagens

Gabriel Konig Lara
konigabriel

(usa Fedora)

Enviado em 23/06/2009 - 14:08h

Eu sabia que ninguem iria entender o que quero!

Vou tentar explicar novamente:

1 - Tenho 6 storages de 300GB por exemplo. Todos eles estão com quase 100% de uso.
2 - Comprei 1 storage de 2,7TB por exemplo. Ele atualmente está vazio. 0% de uso.
3 - Quero transferir as imagens .TIF dos 6 storages para o único storage de 2,7TB.
Condição - Não é uma cópia simples por que a estrutura de diretórios não pode ser a mesma.

Exemplo1;
Em um dos 6 storages tenho o seguinte diretório: /imagens/clienteX/projeto123/idXXX/*.TIF
Preciso copiar este diretório completo para dentro do storage de 2,7TB de forma que fique da seguinte forma: /imagensweb/clienteY/projeto456/idYYY/*.TIF

Exemplo2;
Em um dos 6 storages tenho o seguinte diretório: /imagens/clienteH/projeto753/idZZZ/*.TIF
Preciso copiar este diretório completo para dentro do storage de 2,7TB de forma que fique da seguinte forma: /imagensweb/clienteM/projeto00793/idRRR/*.TIF

Exemplo(...);
São aproximadamente 300 diretórios com imagens!

Acontece que se eu efetuar o comando por exemplo:
cp -rfav /media/origem/Unidossie/Unidossie.29/CD_0029/009F2BF7.TIF /media/destino/UnidossieID40/Unidossie.99/DVD_3391/009F2BF7.TIF
Resultado: Dá erro por que o dir "/media/destino/UnidossieID40/Unidossie.99/DVD_3391/" não existe.

Acho que desta forma dá pra entender um pouco melhor! Alguem tem uma sugestão?




7. Re: Copiar milhões de imagens

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 23/06/2009 - 14:29h

No exemplo 1, no caso, qual é a relação entre os nomes dos clientes, os números dos projetos e os números das id? Dá pra fazer um script em cima disso, mas preciso saber da relação entre eles...


8. Re: Copiar milhões de imagens

Gabriel Konig Lara
konigabriel

(usa Fedora)

Enviado em 23/06/2009 - 16:00h

Não há relação entre os nomes por que será definido pelo desenvolvedor da aplicação que vizualiza as imagens. O meu problema está no comando, ou seja, eu não consigo um comando que cria os diretórios e copia ao mesmo tempo!

cp -rfav /dir-existente/dir-existente/dir-existente/imagem1.tif /dir-para-criar/dir-para-criar/dir-para-criar/imagem1.tif

Ao executar isso tenho no stderr a mensagem "diretório inexistente".

Obrigado pela atenção!


9. Re: Copiar milhões de imagens

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 23/06/2009 - 16:35h

Não vejo uma solução melhor, mas crie um script assim:

#!/bin/bash
echo "Digite o diretório a ser copiado: "
read diretorio
mkdir -p $diretorio
cp -rfav $diretorio/*.tif

É bem simplesinho, mas pode quebrar um galho.


10. Re: Copiar milhões de imagens

Gabriel Konig Lara
konigabriel

(usa Fedora)

Enviado em 23/06/2009 - 16:48h

Eu estava pensando em alguma coisa parecida com:

#!/bin/bash
echo "Digite as imagens que deseja copiar"
read origem
echo "Digite o destino que deseja"
read destino
if [ ! -d $destino ];
then
mkdirhier $destino
fi
cp -rfav $origem $destino >> /tmp/log-copia.log

O problema disso é que vou ter que digitar um a um então acredito que vai dar quase no mesmo de fazer no braço sem script.

Obrigado pela atenção!




11. Re: Copiar milhões de imagens

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 23/06/2009 - 23:26h

Infelizmente, sim. Só q o seu script tá com alguns erros. Nesse caso, nem precisa da condição if:

#!/bin/bash
echo "Digite as imagens que deseja copiar"
read origem
echo "Digite o destino que deseja"
read destino
mkdir -p $destino
cp -rfav $origem $destino >> /tmp/log-copia.log



12. Tente assim...

Emanuel
emanuelbaruel

(usa Fedora)

Enviado em 24/07/2009 - 19:38h

Acho que isso pode te ajudar... o rsync nesse caso eh muito poderoso...

rsync /imagens/clienteX/projeto123/idXXX/ /imagensweb/clienteY/projeto456/idYYY/ --stats --archive --perms --owner --group --safe-links --verbose

Manda tudo de um diretorio para outro e se nao existir o diretorio destino ele cria...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts