Acho que você tem o problema da mochila para tamanhos de arquivo.
O que basicamente significa, dado um conjunto de arquivos, encontrar os melhores grupos de arquivos que podem ser colocados em uma mídia de backup de tamanho fixo (nossa mochila). Em seguida, você deseja usar os conjuntos indicados para criar arquivos tar e transferi-los, um de cada vez, a partir de sua máquina local usando qualquer unidade de disco rígido ou flash que você tenha.
Estou delineando uma solução de amostra em python - suit de acordo com suas habilidades de programação.
-
Pegue todos os argumentos de entrada em um script python e encontre os tamanhos de arquivo de arquivos ou diretórios individuais. Você pode chamar um
du -sm
em cada arquivo ou argumento de diretório para que o python não tenha que fazer o trabalho duro de encontrar tamanhos individuais de diretórios. -
Elimine imediatamente o limite da mídia.
-
Adicione o restante a uma lista e aplique o algoritmo de mochila ao conjunto inteiro. Muitos exemplos estão por aí, como a solução de Mike aqui.
-
Elimine os que são adicionados à mochila em uma rodada e retorne à etapa 3 com a lista de sobras.
-
Repita as etapas 3-4-3 acima até que todos os itens restantes na lista possam caber em uma mochila (ou seja, o tamanho total dos itens restantes é menor que o limite de mídia).
Deve ser isso!