Procurando por script para procurar servidores linux por arquivos mais antigos que x quantidade de dias com esquema de nomenclatura específico

4

Minha empresa tem um conjunto de servidores linux nos quais os usuários armazenam arquivos. Os arquivos seguem um esquema de nomenclatura comum de #####, ###, ### com os números relacionados aos campos exclusivos para eles. Eles devem remover os arquivos após 30 dias, mas isso não está acontecendo e, como resultado de uma crescente comunidade de usuários, alguns dos servidores estão com pouco espaço em disco.

Alguém aí sabe de uma maneira que eu poderia rotear um processo que procuraria em todas as partições dos servidores Linux por qualquer arquivo com o esquema de nomenclatura acima que fosse mais antigo que 30 dias e o movesse para uma nova pasta? / p>

Isso tornaria muito mais fácil a limpeza, porque alguns usuários armazenam arquivos com vários níveis de profundidade e começam a ocupar muito tempo apenas procurando por eles, permitindo que eles decidam se podem ou não ser excluídos.

Qualquer ajuda seria muito apreciada!

    
por mrbarker 23.09.2015 / 18:56

1 resposta

5

Use o comando de localização para obter os arquivos desejados. Você pode usar a opção -mtime para definir a idade do arquivo. Você pode usar o regex \d{5},\d{3},\d{3}$ para corresponder ao nome do arquivo. Em seguida, mova cada arquivo para onde você quiser.

Assim:

find / -mtime +30 -regex '\d{5},\d{3},\d{3}$' -exec mv {} /path/to/destination/folder \;
  • O texto acima mostra isso na raiz, o que é bastante assustador. Considere incluí-lo apenas nos diretórios que você precisa.
  • Observe que esse padrão não é extremamente exclusivo, portanto, use novamente com cuidado.
  • Ajuste seu regex aqui
por 23.09.2015 / 23:28