Usando 7zip por data

3

Como posso usar o 7zip e a linha de comando para selecionar determinados arquivos por Data de modificação e automatizar usando um arquivo de lote?

    
por Dave 25.10.2011 / 20:14

2 respostas

1

Ok. Eu usei o Robocopy para separar os dados que tinham uma certa idade ou mais, depois usei o 7za para compactar e remover os arquivos temporários. Veja abaixo:

mkdir C:\Robocopy\Archive\Spool
mkdir C:\Robocopy\Archive\Spool\BackupLogs
mkdir C:\Robocopy\Archive\Spool\DRLogs

robocopy c:\Robocopy\Backup\BackupLogs\ C:\Robocopy\Archive\Spool\BackupLogs\ /move /minage:60
robocopy C:\Robocopy\Backup\DRLogs\ C:\Robocopy\Archive\Spool\DRLogs\ /move /minage:60
7za a c:\Robocopy\Archive\Archive.7z C:\Robocopy\Archive\Spool\

rmdir /S /Q C:\Robocopy\Archive\Spool

Estou lidando com dois conjuntos de arquivos de log aqui, um de backup no local e outro externo de recuperação de desastres (DR).

O Robocopy está disponível no Windows Resource Kit ( Aqui está a versão do Server 2003 ) e tem alguns recursos bem legais. O que eu uso aqui é o argumento / minage, que eu usei para especificar que arquivos de log com mais de 60 dias devem ser movidos (não copiados) para pastas apropriadas dentro de um diretório de Spool. Eu então comprimir o conteúdo do diretório de spool para um terceiro local e, finalmente, excluir o diretório de spool.

    
por 25.10.2011 / 20:52
0

Nos sistemas Linux, o comando a seguir deve compactar os arquivos contidos em /path/to/your/folder com mais de 7 dias no arquivo archive.7z :

find /path/to/your/folder -mtime +7 -exec 7z a archive.7z {} \; 

Mas isso não preservará a estrutura do diretório. Um comando similar, criando um arquivo tar primeiro e depois compactando-o usando 7z , deve fazer o trabalho:

$ find /path/to/your/folder -mtime +7 -exec tar cf archive.tar {} \;
$ 7z a archive.tar.7z archive.tar
    
por 25.10.2011 / 21:28