.png)
Ich versuche, Bacula so zu konfigurieren, dass es automatisch recycelt und ein zufälliges Band verwendet, das ich in das einzelne LTO-Laufwerk einlege, aber es scheint das älteste Sicherungsband zu bevorzugen, obwohl es nicht im Laufwerk ist. Ich habe alle Bänder bereits als „Gebraucht“ markiert und sichergestellt, dass die Aufbewahrungsfrist abgelaufen ist.
Die Speicherkonfiguration und die Verzeichniskonfiguration 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
DIR
Pool {
Name = Default
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 15 days
Ich habe die Dokumentation gelesen und dort steht anscheinend, dass der Speicheralgorithmus das Band im Laufwerk bevorzugt, aber ich glaube, ich verstehe das nicht richtig.
Gibt es eine Möglichkeit, Bacula zu zwingen, das Band zu verwenden, das sich aktuell im Laufwerk befindet?
Antwort1
Also habe ich eine Lösung mit einem Before-Job-Skript gefunden.
Ich habe die Datei dir.conf geändert und diese Zeile zum Job hinzugefügt
Run Before Job = "/etc/bacula/scripts/purgecurrenttape"
und purgecurrenttape ist so.
#!/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
Auf diese Weise wird ungeachtet der Aufbewahrungsfristen der Jobs oder Datenträger immer das gelöschte Band verwendet.