Pular para o conteúdo

Backup de arquivos por Data

Responder tópico
  • Denunciar
  • Indicar

1. Backup de arquivos por Data

Enviado em 10/02/2011 - 17:40h

Olá amigos, estou precisando de uma ajuda com relação a um problema que me deparei estes dias.

Vamos ter que visitar alguns clientes e lá eles tem bancos de dados enormes de arquivos de audio de gravações telefonicas, então teria que fazer um script que selecionasse por exemplo, todos os arquivos de audio do mês de novembro de 2010, e compacta-los em um arquivo único como cliente-mes-ano.tar, pois teremos que organizar um banco de dados enorme
em apenas doze arquivos(jan, fev, mar, abr...dezembro), contendo as ligações de cada mês respectivo

tentei várias abordagens diferentes pra isso. Tentei listar todos os arquivos filtrando apenas a sua data e seu nome pelo comando: ( ls -l |awk '{print $6" "$8}' > log.txt ) e jogar a lista neste arquivo log, e lá manipular de alguma maneira as linhas e colunas, mais ficou muito confuso, e claro, não funcionou. Também tentei uma abordagem pelo comando 'find' onde acredito que seja a melhor escolha, mais não domino muito seus parametros. Então gostaria que se alguem poder me ajudar seja de que jeito for, eu agradeço muito.


Responder tópico

2. Re: Backup de arquivos por Data

Enviado em 10/02/2011 - 18:49h

Use o find ,
find /dir -mtime +NUMERODEDIAS | xargs tar -zcvf nomedoarquivo.tar.gz


3. Re: Backup de arquivos por Data

Enviado em 11/02/2011 - 10:07h

Interessante este comando, mais pelo que estou vendo ele apenas especifica uma faixa de dias como por exemplo, dos ultimos 30 dias pra cá, pois já tentei algo parecido com isso e notei esta deficiência. O que eu estou de fato buscando é algo mais especifico, tipo, ex: preciso compactar todos os arquivos que foram criados apenas no mês de setembro de 2009, teria que ser algo mais específico.

4. Re: Backup de arquivos por Data

Enviado em 11/02/2011 - 10:16h

vou te dar uma dica ...


saida do comando ls -lh
================================================
-rw-r--r-- 1 root root 1.1K Apr 8 2010 sendmail.cf.rej
-rw-r--r-- 1 root root 19K Mar 14 2003 services
-r-------- 1 root root 1014 Feb 10 11:34 shadow
-rw------- 1 root root 956 Feb 10 11:33 shadow-
-rw-r--r-- 1 root root 78 Feb 1 01:05 shells
================================================


essa linha vai filrar todos os arquivos de janeiro deste ano. Todos os arquivos dos outros ano apare explicitamente o ano, já do ano atual aparece o horario.
================================================
[root@brma etc]# ls -lh | grep ^- | grep Jan | grep -v 20..
-rw-r--r-- 1 root root 509 Jan 14 07:16 ipsec.conf
================================================
[root@brma etc]# ls -lh | grep ^- | grep Feb | grep -v 20..
-rw-r--r-- 1 root root 46 Feb 9 19:01 adjtime
-rw-r--r-- 1 root root 404 Feb 1 03:06 blkid.tab
-rw-r--r-- 1 root root 558 Feb 1 01:05 fstab
-rw------- 1 root root 731 Feb 10 11:33 group-
-rw-r--r-- 1 root root 1.5K Feb 10 11:33 passwd
-rw------- 1 root root 1.4K Feb 10 11:33 passwd-
-rw-r--r-- 1 root root 979 Feb 3 11:10 profile
-rw-r--r-- 1 root root 61K Feb 1 03:19 sendmail.cf
-r-------- 1 root root 1014 Feb 10 11:34 shadow
-rw------- 1 root root 956 Feb 10 11:33 shadow-
-rw-r--r-- 1 root root 78 Feb 1 01:05 shells
================================================

existem muitas formas de se fazer este script ... uma das formas é utilizando o awk tambem ...


execute estes 2 comando para dar uma ideia do que fazer ...
===============================================
find . -type f | cut -c 3- | xargs ls -lh | grep -v 20..
find . -type f | cut -c 3- | xargs ls -lh | grep -v 20.. | awk '{print $9}'
===============================================
lista recursivamente todos os arquivos deste ano apartir do diretorio atual.

agora so pegar essa saida e reajustar para criar seu tar ....


falow

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder