localiza arquivos com espaços modificados nos últimos 60 dias e tar.gz em arquivos não maiores que 4gb com data

1

Eu mantenho um servidor de arquivos. Eu preciso fazer backup de arquivos que foram alterados em um período de tempo.

Primeiro eu compactei tudo para arquivos de 4GB e copiei para o dvd. Mas 7z que eu estava usando

7z a -t7z /home/user/myfiles051413_proj.7z /home/share/projects -v4000m -m0=bzip2 -mmt=4

parece não ter como zipar arquivos modificados nos últimos 60 dias e não sei como passar isso para um comando como esse. Eu não quero ter que comprimir a pasta inteira e fazer backup do que já foi feito o backup! (desperdício de espaço)

tar parece funcionar bem com isso

find /home/share/projects -mtime -60

e canalizá-lo para um comando também funciona, mas os espaços me causam problemas. Aqui está o comando que estou tentando conseguir trabalho. Encontrar todos os arquivos modificados nos últimos 60 dias. em seguida, compactando-os em arquivos de 4GB.

find /home/share/projects/ -mtime -60 | xargs tar -cvML 4194304 -f /home/user/myfiles'date '+%d%m%Y'_proj.tar'

no momento em que ele será executado por um tempo e só terá um arquivo pequeno nele. imprime vários arquivos na tela!

Eu tenho jogado com -print0

find /home/samba/shares/projects -mtime -60 -type f -print0| xargs tar -cvML 4194304 -f /home/samba/shares/bkup/'date '+%d%m%Y'_proj.tar' -T - --null

eu recebo um monte de tar: de: Não é possível stat: Nenhum tal arquivo ou diretório

    
por user2630659 29.07.2013 / 16:48

1 resposta

0

você tem bug no último script com -print0.

  1. você usa xargs. Não é uma boa ideia porque muitos dos arquivos xargs executam o tar duas vezes ou mais.
  2. você usa para tar -T - option. direitos, mas para que nesta situação é xargs?

simplesmente remova xargs porque é desnecessário. Isso pega todos os arquivos do stdin e coloca no tar como argumentos no final. então a opção tar -T não recebe nada em sua stdin.

    
por 06.09.2013 / 08:49

Tags