
Pretendo mudar do diretório linux o/sa que está montado na SAN (offboard) para armazenamento externo para backup. O tamanho do diretório é 14TB
.
Tenho experiência em mover arquivos para dentro/para fora usando rsync, mas nunca fiz isso com diretórios/arquivos de tamanho grande como agora.
Os diretórios são estabelecidos em termos de hierarquia ano/mês/dias/horas e suportam logs brutos para análise.
Problema
Portanto, com o que foi dito acima, devido a restrições de recursos, não consigo mover 14 TB completos para o espaço de armazenamento externo/de backup. O espaço de backup que tenho atualmente é de no máximo 8 TB. Então, existe um comando ou opção/parâmetro que eu possa dizer ao rsync para copiar apenas arquivos no tamanho mencionado, ou seja, apenas TB.
OBSERVAÇÃO Eu não me importo menos com a natureza do arquivo, é apenas além de um determinado tamanho, não quero mover nenhum dado.
Responder1
Você não pode fazer com que o rsync pare quando ele tiver copiado uma certa quantidade de bytes, fornecendo um limite. Você pode executá-lo normalmente
rsync -a /src/ /dest
e quando /dest estiver cheio, ele irá parar com um erro
rsync: write failed on "...": No space left on device (28)
Você poderia fazer algo com um script
find /src -printf "%p %s\n" >filelist_size
Em seguida, use algo como awk para ler filelist_size
e imprimir o nome do arquivo filelist
se a soma dos tamanhos dos arquivos estiver abaixo de algum limite.
Você pode então usar o files-from=filelist
argumento para rsync.
Pode ser mais fácil escrever isso em python.