Backup de arquivos por Data

1. Backup de arquivos por Data

bruno
brunocam

(usa Outra)

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.




  


2. Re: Backup de arquivos por Data

Harrison Martins
hmweb

(usa Slackware)

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

bruno
brunocam

(usa Outra)

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

Daniel Miyagi
j4p0n3g0

(usa Debian)

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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts