Ajuda para copiar arquivos com data de modificação x para outra pasta

1. Ajuda para copiar arquivos com data de modificação x para outra pasta

Marcelo Sousa
msousam

(usa Red Hat)

Enviado em 13/01/2017 - 09:50h

Olá colegas!

Venho humildemente aqui pedir a ajuda a voces para encontrar uma forma de criar o comando ou script para realizar um move dos diretórios e arquivos do nosso file server (Red Hat). Esse diretório esta com quase 500GB e efetuar o backup esta cada vez mais dificil, porém há muitos arquivos lá que ja não são utilizados, então preciso criar um comando que mova todos os arquivos com data de modificação inferior a dezembro de 2014 para uma outra pasta do mesmo servidor.

Eu consigo fazer esse move apenas com alguns comando ou seria melhor criar um shell script para realizar essa tarefa? Infelizmente tambem não tenho conhecimento neste tipo de cópia então se puderem me ajudar na criação deste comando seria de grande ajuda.

Essa é a listagem de diretórios

[root@ATS-BR000918 Arquivos]# ls -larth
total 104K
drwxr-xr-x+ 4 root root 4.0K Dec 4 2013 ..
drwxrwsr-x+ 4 ATS-BRZ+serveradmin ATS-BRZ+dg_comercial_full 4.0K May 3 2014 BR-COMERCIAL_ATAS
drwxrws---+ 25 ATS-BRZ+serveradmin ATS-BRZ+dg_clientes_full 4.0K Jun 9 2014 BR-CLIENTES
drwxrwsr-x+ 41 ATS-BRZ+serveradmin ATS-BRZ+dg_rh_full 4.0K Oct 2 2014 BR-RH
drwxr-x--x+ 12 ATS-BRZ+serveradmin ATS-BRZ+domain users 4.0K Feb 18 2015 BR-CVS
drwxr-xr-x+ 12 root ATS-BRZ+domain users 4.0K Jan 8 2016 .
drwxrwxr-x+ 25 ATS-BRZ+serveradmin ATS-BRZ+domain users 4.0K Jan 15 2016 BR-INTRANET
drwxrwx---+ 33 ATS-BRZ+serveradmin ATS-BRZ+domain admins 4.0K Nov 21 11:02 BR-USERS
drwxrwsr-x+ 37 ATS-BRZ+serveradmin ATS-BRZ+dg_comercial_full 12K Dec 12 18:40 BR-NETWORK
drwxrws---+ 9 ATS-BRZ+serveradmin ATS-BRZ+dg_tecnologia_full 4.0K Dec 13 12:45 BR-TECNOLOGIA
drwxrws---+ 73 ATS-BRZ+serveradmin ATS-BRZ+dg_comum_full 4.0K Dec 13 19:18 BR-COMUM
drwxrws---+ 50 ATS-BRZ+serveradmin ATS-BRZ+dg_adm_full 4.0K Dec 29 11:15 BR-ADM


Desde já agradeço a ajuda de voces!


  


2. Re: Ajuda para copiar arquivos com data de modificação x para outra pasta

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 13/01/2017 - 11:38h

uma das formar de fazer é usar um parametro do find:


ORIGEM=/var/origem
DESTINO=/mnt/bkp_antigos/
DATA_ALVO=2014-12-01
# procura os arquivos com data inferior a DATA_ALVO
find $ORIGEM ! -newermt $DATA_ALVO -exec cp {} $DESTINO \;




3. Re: Ajuda para copiar arquivos com data de modificação x para outra pasta

Marcelo Sousa
msousam

(usa Red Hat)

Enviado em 13/01/2017 - 13:43h

Obrigado, cara!

No caso esse comando
-exec cp 
é para copiar né, se eu quiser mover eu quisesse mover usaria o
-exec mv 
correto?

rai3mb escreveu:

uma das formar de fazer é usar um parametro do find:


ORIGEM=/var/origem
DESTINO=/mnt/bkp_antigos/
DATA_ALVO=2014-12-01
# procura os arquivos com data inferior a DATA_ALVO
find $ORIGEM ! -newermt $DATA_ALVO -exec cp {} $DESTINO \;






4. Re: Ajuda para copiar arquivos com data de modificação x para outra pasta

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 13/01/2017 - 21:50h

correto


5. Re: Ajuda para copiar arquivos com data de modificação x para outra pasta

Marcelo Sousa
msousam

(usa Red Hat)

Enviado em 19/01/2017 - 15:59h

Cara, fiz exatamente como voce me orientou porém esta dando o erro

find: invalid predicate `-newermt'

ORIGEM=/ATS/Dados/FileServer/Arquivos/BR-ADM
DESTINO=/ATS/Dados/FileServer/Arquivos/BR-ADM2
DATA_ALVO=2014-12-31
# procura os arquivos com data inferior a DATA_ALVO
# find $ORIGEM ! -newermt $DATA_ALVO -exec cp {} $DESTINO \;



Fiz alguma coisa errada?



6. Re: Ajuda para copiar arquivos com data de modificação x para outra pasta

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 20/01/2017 - 12:09h

Pode ser que sua versão do find não suporte o newermt, veja se essa solução serve: http://stackoverflow.com/questions/20716132/find-invalid-predicate-when-using-newermt


7. Re: Ajuda para copiar arquivos com data de modificação x para outra pasta

Rafael da cruz
toskoon

(usa CentOS)

Enviado em 24/01/2017 - 11:09h

msousam escreveu:

Cara, fiz exatamente como voce me orientou porém esta dando o erro

find: invalid predicate `-newermt'

ORIGEM=/ATS/Dados/FileServer/Arquivos/BR-ADM
DESTINO=/ATS/Dados/FileServer/Arquivos/BR-ADM2
DATA_ALVO=2014-12-31
# procura os arquivos com data inferior a DATA_ALVO
# find $ORIGEM ! -newermt $DATA_ALVO -exec cp {} $DESTINO \;



Fiz alguma coisa errada?


Bom dia, como o amigo acima mencionou você deve ta com uma versão de find antiga.

Eu tinha um script aqui que pode te ajudar.

#!/bin/sh

echo "digite a data inicial do filtro(Digitar apenas Mês e dia: ex: 0619(19 de junho))"
read DATAINICIAL
echo "digite a data final do filtro (Digitar apenas Mês e dia: ex: 0619(19 de junho))"
read DATAFINAL

#parametros para criacao dos arquivos de filtro
ANO=`date +%Y` ## DIFINIR O ANO QUE VOCÊ PRECISA.
olddate="$ANO"$DATAINICIAL"0000"
newdate="$ANO"$DATAFINAL"2359"

#parametro da com data e hora atual do sistema.
#DATAEHORA=`date +%Y%m%d%H%M`

#Variavels de path
ORIGEM=/home/rafael/Downloads
DESTINO=/home/rafael/destino

#criacao dos arquivos de filtro do find
touch -t ${olddate} /tmp/tmpoldfile
touch -t ${newdate} /tmp/tmpnewfile

#filtro dos arquivos a serem copiados.
find ${ORIGEM} -type f -newer /tmp/tmpoldfile ! -newer /tmp/tmpnewfile -exec mv {} ${DESTINO} \;


Veja se você consegue entender o script.
OBS: lembre de alterar o ano se você for testar o script.

Abs.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts