Script de exclusão automática de bash

2

Estou procurando um script bash que elimine automaticamente as pastas mais antigas (digamos, últimas 3) em um diretório quando o espaço disponível for inferior a X shows.

Li mensagens relacionadas, mas, como não sei de nada, não sei como modificar os scripts com segurança.

    
por Halik 05.01.2011 / 00:56

1 resposta

2

Você precisa personalizar as opções PARTITION, DIR_TO_CHECK, LIMIT e NUM_DIRS_TO_DELETE, BLOCKSIZE e NUM_DIRS_TO_DELETE para atender às suas necessidades.

O LIMIT é o número de gigabytes disponíveis.

SEJA CUIDADO COM ESTE, uma vez que você descomente o comando rm, os diretórios que ele exclui desaparecerão!

#!/bin/bash
IFS=$'\n'

PARTITION="/dev/sdb1"
DIR_TO_CHECK="/home/bryan/temp/*/"
BLOCKSIZE=1000000000 
LIMIT=12
NUM_DIRS_TO_DELETE=4


if [ $(df  -B $BLOCKSIZE  $PARTITION | tail -1 |  awk  '{ print $4}') -gt $LIMIT ]; then
  echo "plenty of space"
else 
   for i in $(ls -d $DIR_TO_CHECK --group-directories-first  -tr | head -$NUM_DIRS_TO_DELETE)
   do

      du -h $i
      # When you are happy that the script does what you want, 
      # delete the above line and remove the # character from the below
      # rm -r $i 
   done
fi
    
por 05.01.2011 / 02:04