rsync - Excluir arquivos com mais de um determinado tamanho?

43

Estou fazendo um backup da minha área de trabalho em uma máquina remota. Eu estou fazendo basicamente rsync -a ~ example.com:backup/No entanto há um monte de arquivos grandes, por exemplo wikipedia lixeiras etc. A maioria dos arquivos que eu me importo muito sobre uma pequena, tais como arquivos de cookie Firefox ou .bashrc. Existe alguma invocação para o rsync que excluirá arquivos com um determinado tamanho? Dessa forma, eu poderia copiar todos os arquivos com menos de 10 MB primeiro e depois fazer todos os arquivos. Dessa forma, eu posso fazer um backup rápido dos arquivos mais importantes, depois um backup mais longo de todo o resto.

Rory
fonte
Sim, todas essas .isoimagens ou .movgravações de tela não apenas ocupam um espaço valioso, mas também um tempo valioso. Estou numa corrida contra o tempo para fazer backup do meu computador antes de entregá-lo às pessoas do Apple iRepair que roubam seus dados mesmo quando não é necessário.
Sridhar Sarnobat

Respostas:

74

Existe uma max-sizeopção:

--max-size=SIZE         don't transfer any file larger than SIZE

Assim:

# rsync -rv --max-size=1.5m root@tss01:/tmp/dm

Enviará apenas arquivos com menos de 1,5 m.

Em relação aos tamanhos do homem: Os sufixos são os seguintes: "K" (ou "KiB") é um kibibyte (1024), "M" (ou "MiB") é um mebibyte (1024 * 1024) e "G" ( ou "GiB") é um gibibyte (1024 * 1024 * 1024). Se você deseja que o multiplicador seja 1000 em vez de 1024, use "KB", "MB" ou "GB". (Nota: minúsculas também são aceitas para todos os valores.) Finalmente, se o sufixo terminar em "+1" ou "-1", o valor será compensado em um byte na direção indicada *

davey
fonte
3
Observe, no entanto, que --max-size não é uma "exclusão" real, na página de manual: Esta opção é uma regra de transferência, não uma exclusão, portanto, não afeta os dados que entram nas listas de arquivos, e, portanto, não afeta exclusões. Apenas limita os arquivos que o receptor solicita que sejam transferidos.
schlicht