Hay que configurar la ruta donde están el disco duro donde volvamos las copias de seguridad (DirectorioBackup=/BACKUP), una vez configurado esto ya podemos programar su ejecución periódica antes de que se lance la copia de seguridad nueva, para que cuando intente copiar los ficheros tenga espacio.
El script mira el espacio de la última copia de seguridad y irá borrando directorio desde el más antiguo al más moderno, hasta dejar el espacio suficiente para que entre una copia de seguridad con el mismo tamaño que la última copia.
#!/bin/bashPara el correcto funcionamiento del script, el directorio /BACKUP tendrá que almacenar un directorio por copia de seguridad, por ejemplo:
DirectorioBackup=/BACKUP
EspacioMaxQueOcupaUnaCopia=`du -s $DirectorioBackup/* | sort | tail -n1 | awk '{print $1}' `
EspacioDisponibleHDD=`df -P $DirectorioBackup | grep -v -i S.ficheros | awk '{print $4}'`
while [ $EspacioMaxQueOcupaUnaCopia -gt $EspacioDisponibleHDD ]; do
DirectiorABorrar=`ls -t $DirectorioBackup | tail -n1`
rm -fr "$DirectorioBackup/$DirectiorABorrar"
EspacioDisponibleHDD=`df -P $DirectorioBackup | grep -v -i S.ficheros | awk '{print $4}'`
done
/BACKUP/20081217Si el script se encuentra con esta casuística, borrará primero el directorio /BACKUP/20081215 y si aún así no le queda espacio suficiente, borrará /BACKUP/20081216.
/BACKUP/20081216
/BACKUP/20081215
No hay comentarios:
Publicar un comentario