Aqui está um script que analisa a saída de uptime
, calcula o total de minutos desde a inicialização e encontra arquivos modificados maiores que muitos minutos atrás. Eu testei isso no FreeBSD 10.2, no Debian Jessie 8 e no Ubuntu Trusty 14.04. Eu não sei sobre o formato de saída uptime
em outros sistemas.
O coração disso é o script awk
na função uptime_minutes
, que pode ser colocado em um arquivo de comando próprio para uso em outros comandos find
e situações em que você precisa saber o número de minutos de tempo de atividade, provavelmente com precisão de 1 minuto.
Salve isso em um arquivo e execute com sh filename directory ...
, em que filename
é o nome escolhido para o script e directory
é o diretório, um ou mais, que você deseja pesquisar:
#!/bin/sh
uptime_minutes() {
uptime |
awk '
{
for (i=1; i<=NF; i++) {
if ($i == "up") {
split($(i+3), hhmm, "[:,]")
print ($(i+1) * 24 * 60) + (hhmm[1] * 60) + hhmm[2]
exit
}
}
}
'
}
find "${@:?}" -mmin +$(uptime_minutes) # -exec rm {} \;
O "${@:?}"
apenas imprime e erro se você não fornecer nenhum argumento de diretório.
O código de remoção de arquivo está comentado no final. Basta remover o #
se você quiser realmente remover os arquivos em vez de imprimir seus nomes.