Procurando um script para pesquisar servidores Linux em busca de arquivos com mais de x dias com esquema de nomenclatura específico

Procurando um script para pesquisar servidores Linux em busca de arquivos com mais de x dias com esquema de nomenclatura específico

Minha empresa possui 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 correlacionados aos campos exclusivos deles. Eles deveriam remover os arquivos após 30 dias, mas isso não está acontecendo e, como resultado de uma crescente comunidade de usuários, alguns servidores estão com pouco espaço em disco.

Alguém aí sabe como eu poderia criar um script de um processo que pesquisasse em todas as partições dos servidores Linux qualquer arquivo com o esquema de nomenclatura acima que tivesse mais de 30 dias e o movesse para uma nova pasta?

Isso tornaria muito mais fácil a limpeza, porque alguns dos usuários armazenam arquivos em muitos níveis de profundidade e isso começa a ocupar muito tempo apenas procurando por eles, deixando sozinho decidir se pode ou não ser excluído.

Qualquer ajuda seria muito apreciada!

Responder1

Use ocomando encontrarpara obter os arquivos que você deseja. Você pode usar a -mtimeopção 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 quiser.

Assim:

find / -mtime +30 -regex '\d{5},\d{3},\d{3}$' -exec mv {} /path/to/destination/folder \;
  • O que foi dito acima desencadeia isso na raiz, o que é bastante assustador. Considere contê-lo apenas nos diretórios necessários.
  • Observe que esse padrão não é extremamente exclusivo; portanto, use-o novamente com cuidado.
  • Ajuste seu regexaqui

informação relacionada