четверг, 8 октября 2009 г.

Удаляем старые резервные копии

Смысл: Скопились файлы с резервными копиями, информация о которых отсутсвует в каталоге Baculы. Надо бы от них избавиться.
Что делать? Надо узнать если информация в каталоге бакулы по каждому файлу в папках устройств.
Скрипт:
#!/bin/bash
devicesdir=/bacula/devices
medianame=''
result=''
mysql_host="localhost"
mysql_db="bacula"
mysql_user="bacula"
mysql_password=""

for myfile in $devicesdir/*/*
do
medianame=`echo "$myfile" | cut -d'/' -f5`
result=`echo "select VolumeName FROM Media WHERE VolumeName=\"$medianame\";" | mysql -h $mysql_host -u $mysql_user -p$mysql_password $mysql_db`
if [ "$result" = "" ]
then
rm -fv $myfile
fi
done

В итоге скрипт удалит все файлы, информация о которых не нашлась в каталоге.

Использовать крайне осторожно! Можно лишиться своих резервных копий.