Este é um grande PITA:
- todos os programas mencionados, tudo que usar qualquer variante de
ls
irá falhar ou expirar - você deve acompanhar o progresso por outros meios
- você deve remover o estresse do sistema de arquivos
- você deve evitar duplicar a situação em que você está.
rsync
duplicará a situação. rawtar
duplicará a situação. você não quer ter 7000000 cópias em alguma outra pasta.
Ok, dado o que pode funcionar nesta situação:
- escolha python ou o que você sabe melhor.
- converse com o banco de dados e obtenha nomes de arquivos em blocos de 1000.
- copie esses 1000 arquivos para outro diretório e zip / tar nesse diretório para enviá-lo para outro local. como e se você mover esses arquivos incluídos fora do caminho depende um pouco da quantidade de armazenamento que você tem nesse disco. manter outros 7000000 arquivos (não importa o quão organizados) no mesmo sistema de arquivos é o estresse.
- se este bloco de 1000 funcionou ok e está tudo bem, escreva o id mais alto daquele pedaço para uma tabela de banco de dados diferente (você não quer ALTER TABLE naquele 7000000 para apenas adicionar uma nova coluna 'movida', pode demorar muito e você altera "a verdade"; crie uma segunda tabela e acompanhe o progresso)
- repita.
coisa mais importante: copie, verifique e exclua os arquivos originais dessa pasta enorme.
também é imprudente copiar 1: 1 os arquivos para outro lugar, já que você teria repetido a situação ruim em que você se encontra agora.
boa sorte.