.png)
Я пытаюсь настроить Bacula на автоматическую переработку и использование случайной ленты, которую я вставил в один накопитель LTO, но, похоже, он предпочитает самую старую резервную ленту, несмотря на то, что ее нет в накопителе. Я уже пометил все ленты как «Использованные» и убедился, что период хранения закончился.
Конфигурация хранилища и конфигурация каталога SD.conf
Device {
Name = LTO5
Archive Device = /dev/nst0
Device Type = Tape
Media Type = LTO-5
LabelMedia = yes
Random Access = no
#AutoChanger = yes
AutomaticMount = yes
AlwaysOpen = yes
RemovableMedia = yes
Maximum Concurrent Jobs = 1
LabelMedia = yes
Maximum File Size = 12G
ДИР
Pool {
Name = Default
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 15 days
Я прочитал документацию, и там, кажется, говорится, что алгоритм хранения отдаст предпочтение ленте внутри привода, но мне кажется, что я не совсем правильно это понимаю.
Есть ли способ заставить Bacula использовать ленту, которая в данный момент находится в накопителе?
решение1
Поэтому я нашел решение, используя скрипт, написанный перед началом работы.
Я изменил dir.conf, добавив эту строку в задание
Run Before Job = "/etc/bacula/scripts/purgecurrenttape"
и purgecurrenttape похож на это.
#!/bin/bash
#mount the inside-drive tape
echo "mount storage=LTO5" |bconsole| grep " " >> /var/log/scrcintas.log
sleep 5
#get the name of the mounted tape.
cinta=$(echo "status storage=LTO5" | bconsole |grep Volume: |awk '{print $2}')
if [[ $cinta == CINTA* ]]; #check things....
then
#purge tape.
echo "purge volume=$cinta" | bconsole | grep " " >> /var/log/scrcintas.log
sleep
else
echo error >> /var/log/scrcintas.log
fi
Таким образом, всегда используется очищенная лента, независимо от сроков хранения заданий или томов.