Imaginemos a situação:
Você possui um servidor que recebe os arquivos de backup, eles são guardados por 30 dias e depois são removidos, liberando espaço para os mais novos. Ah, lembre-se de ter um log dos arquivos removidos ;)
Mas, caso não seja possível fazer isso, vamos montar um simples script para executar essa tarefa :)
#!/bin/bash
# Remove arquivos maiores que 30 dias e gera um log
FILENAME=FILES_$(date +%Y%m%d%H%M%m).log
find . -mtime +30 -exec echo {} \; > $FILENAME
rm -rfv $(cat $FILENAME)
A lógica é simples:
Na variável, eu crio um arquivo que possui um prefixo e como sufixo coloco:
- Ano, com 4 dígitos - %Y
- Mês, com 2 dígitos - %m
- Dia, com 2 dígitos - %d
- Horas, com 2 dígitos - %H
- Minutos, com 2 dígitos - %M
- Segundos, com 2 dígitos - %S
O Find irá buscar por arquivos que não modificados nos últimos 30 dias, exibindo os seus nomes e enviando o seu output para um arquivo, que será o log dos arquivos removidos naquele momento.
Após isso, o rm irá ler o arquivo gerado pelo find e removê-los um a um.
Mole né?
0 comentários:
Postar um comentário
Só não vale xingar a mãe ou puxar cabelo nos comentários =)