Script para manter um diretório de cache um tamanho específico e remoção com base no último acesso -- bash campo com scripts campo com filesystem campo com cron campo com cache camp askubuntu Relacionado O problema

Script for keeping a cache directory a specific size and removing based on last accessed


1
vote

problema

português

Eu preciso de um script que verifique o tamanho de um diretório e, se for maior que um tamanho especificado, ele passará e excluirá o número X de arquivos até que esteja abaixo do tamanho do debate novamente. E gostaria que os arquivos fossem excluídos com base no último acessado para que os arquivos que não foram usados ​​em um tempo removido primeiro.

Não tenho certeza se há algum software disponível para lidar com isso já?

english

I need a script that will check the size of a directory and if it's bigger than a specified size it will go through and delete x number of files until it's below the threshhold size again. And I would like the files to be deleted based on last accessed so files that haven't been used in a while get's removed first.

I'm not sure if there is any software avalible for handling this already?

              

Lista de respostas

0
 
vote

Isso é realmente bem simples:

#!/bin/bash max_size=2000 # size in kilobytes i=0 while [[ $(du -s "$1" | awk '{print $1}') > $max_size ]]; do i=$(($i+1)) [[ -z "$file_list" ]] && file_list="$(find "$1" -type f -printf '%T@ %P ' | sort -n | sed 's/[^ ]* //')" rm -f "$(head -n$i <<<"$file_list" | tail -n1)" done

Inicie-o como /path/to/script.sh /path/to/dir e ele vai testar se /path/to/dir excede max_size (em kilobytes) e se sim excluir os arquivos mais antigos um após o outro Até ABCDEFGHIJKLMNABCDEFGHIJKLMN6 é correspondido ou undercut. Tenha cuidado, este exclui arquivos sem misericórdia , executá-lo em um terminal com rm -i em vez de rm -f para testar sua funcionalidade.

Para iniciar o script periodicamente, crie um cronjob com crontab -e como e.g.

  gnome-session-properties0   

para executá-lo semanalmente.

 

That's actually quite simple:

#!/bin/bash max_size=2000 # size in kilobytes i=0 while [[ $(du -s "$1" | awk '{print $1}') > $max_size ]]; do   i=$(($i+1))   [[ -z "$file_list" ]] && file_list="$(find "$1" -type f -printf '%T@ %P\n' | sort -n | sed 's/[^ ]* //')"   rm -f "$(head -n$i <<<"$file_list" | tail -n1)" done 

Start it like /path/to/script.sh /path/to/dir and it will test whether /path/to/dir exceeds max_size (in kilobytes) and if so delete the oldest files one after another until max_size is matched or undercut. Be careful, this deletes files without mercy, run it in a terminal with rm -i instead of rm -f to test its functionality.

To start the script periodically, create a cronjob with crontab -e like e.g.

@weekly /path/to/script.sh /path/to/dir 

to run it weekly.

 
 
     
     

Perguntas relacionadas

3  As torrentes de semeadura afetam o cache de RAM Harddisk?  ( Does seeding torrents affect the harddisk ram caching ) 
Eu fiz um monte de arquivos torrent e enquanto eu estou semeando, notei que muitas vezes quando eu começo o navegador, é lento e o indicador de atividade do d...

2  Como recriar o cache para "aptoncd" depois de limpar o cache através do APT - ficar limpo?  ( How to recreate cache for aptoncd after cleaning cache through apt get clean ) 
Recentemente, tive que optar por limpar meu cache através de apt-get clean depois de obter muitos erros gpg durante a atualização. Mas é criado outro prob...

3  O que esses comandos aptos fazem?  ( What do these apt commands do ) 
O que esses comandos fazem? . Adquira :: http :: no-cache = TRUE -O Adquirir :: BrokantProxy = True Update Adquirir :: Http :: Max-Idade "0" ...

18  Como evitar "Assumir o cache de unidade: escreva através" Mensagem durante a reinicialização?  ( How to avoid assuming drive cache write through message during restart ) 
Alguém sabe como evitar obter esta mensagem: Assuming drive cache: write through que está aparecendo após a execução sudo shutdown -r now . Eu reini...

31  Como posso limpar minha senha de GPG em cache?  ( How can i clear my cached gpg password ) 
Eu tentei: o método sighup - & gt; sem sucesso o tempo limite de cache no GPG-Agent.conf - & gt; Parece que este arquivo não é lido, althougt eu tenho a ...

1  Removendo o cache do aplicativo  ( Removing app cache ) 
Eu recentemente instalei o Cairo-Dock, e estava funcionando muito bem, mas agora é tudo buggy, então eu tentei reinstalar. Eu fiz sudo apt-get purge cairo-...

29  Como faço para redefinir o cache de miniaturas?  ( How do i reset the thumbnail cache ) 
Eu tenho muitas imagens no meu laptop enquanto trabalho em gráficos. No mesmo sistema, também tenho uma pasta contendo minhas fotos da família. Eu gostaria ...

10  Haveria algum efeito colateral negativo de compartilhamento / var / cache / apt / entre dois sistemas?  ( Would there be any negative side effects of sharing var cache apt between two ) 
No interesse de conservar a largura de banda, estou considerando a montagem de um host do virtualbox /var/cache/apt como /var/cache/apt no hóspede. Ambien...

13  Por que o cache está sempre cheio?  ( Why is the cache in my memory always full ) 
Eu tenho 6GB RAM, processador I5 2.4GHz executando o Ubuntu 11.10. Eu particionei meu HD para que eu tenha troca de 8GB. Ao transmitir ou abrir várias guias...

2  Apt-get ignorando um repo mesmo se eu limpar o cache  ( Apt get ignoring a repo even if i clear the cache ) 
Estou tentando obter o repo do Ubuntugis para instalar em um servidor e eu continuo recebendo a linha: Ign http://ppa.launchpad.net/ubuntugis/ubuntugis-uns...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.