Barra laterale

sistema:cancellare_vecchi_backup_automaticamente

Cancellare vecchi directory di backup automaticamente

Autore: Fabio Di Matteo
Ultima revisione: 24/12/2009

Puo' capitare di avere script di backup che fanno copie di directory periodicamente generando delle directory con i seguenti nomi:

ls -l

drwxr-xr-x  15 1002 1001 4096  1 dic 03:20 20091201
drwxr-xr-x  15 1002 1001 4096  2 dic 03:20 20091202
drwxr-xr-x  15 1002 1001 4096  3 dic 03:21 20091203
drwxr-xr-x  15 1002 1001 4096  4 dic 03:20 20091204
drwxr-xr-x  15 1002 1001 4096  5 dic 03:20 20091205
drwxr-xr-x  15 1002 1001 4096  6 dic 03:20 20091206
drwxr-xr-x  15 1002 1001 4096  7 dic 03:19 20091207
drwxr-xr-x  15 1002 1001 4096  8 dic 03:19 20091208
drwxr-xr-x  15 1002 1001 4096  9 dic 03:19 20091209
drwxr-xr-x  15 1002 1001 4096 10 dic 03:20 20091210
drwxr-xr-x  15 1002 1001 4096 11 dic 03:26 20091211
drwxr-xr-x  15 1002 1001 4096 12 dic 03:20 20091212
drwxr-xr-x  15 1002 1001 4096 13 dic 03:20 20091213
drwxr-xr-x  15 1002 1001 4096 14 dic 03:19 20091214
drwxr-xr-x  15 1002 1001 4096 15 dic 03:20 20091215
drwxr-xr-x  15 1002 1001 4096 16 dic 03:20 20091216
drwxr-xr-x  15 1002 1001 4096 17 dic 03:21 20091217

Puo' essere utile per queste situazioni cancellare le n directory piu' vecchie. Ovviamente e' possibile automatizzare il tutto con il seguente script:

#!/bin/bash
 
# -- Modificare in base alle proprie esigenze ---------------
 
#Numero backup da conservare
nbackup=3
 
#directory dei backup
directory="/home/fabio/Documenti/progetti/autoremove/test"
# -----------------------------------------------------------
 
 
oggi=`date +%Y%m%d`
lock=`cat /var/lock/autoremove-backup-protocollo.lock 2> /dev/null` 
 
if [ "$lock" = "$oggi" ];then
	echo "Impossibile lanciare lo script . E' gia' stato avviato oggi."
	exit 1 ;
fi
 
 
echo $oggi > /var/lock/autoremove-backup-protocollo.lock
cd $directory
 
 
#Se rimangono n directory di backup soltanto non eseguo lo script
countdir=`ls | wc -l`
if [ "$countdir" -le "$nbackup" ];then
		echo "E' stato raggiunto il limite massimo di cancellazioni."
		exit 1
fi
 
for riga in `ls  -1 |sort |head -n $nbackup`; do
		countdir=`ls | wc -l`
		if [ "$countdir" -gt "$nbackup" ];then
			echo "Cancello directory -> $riga"
			rm -fR $riga
		fi
done

sistema/cancellare_vecchi_backup_automaticamente.txt · Ultima modifica: 18/04/2018 - 15:50 (modifica esterna)