Greetings!
 
I'm trying to setup a Bacula to back up a remote server. I'm going to try and 
explain my current setup and ultimate goal ;)
 
What i have now:
 
* 1 tapedrive, Dell, with LTO-2 tapes, that works perfectly on my server.
* 1 backup server, Ubuntu 5.10
* Bacula 1.36.3
* 8 LTO-2 tapes in the drive
* My config files, which are attached.
* 1 tape is loaded and present ( otherwise i get I/O errors ;) )
 
What the eventual outcome should be:
 
* Daily (Full) backup from monday to sunday, each day on a new tape.
* On sunday, the tape should be ejected after the backup for off-site storage, 
and a new one will be placed in the device, which should become the new 
sunday-tape.
* Picking up the ejected tape, and inserting a new one, should be the only 
manual tasks ( if possible )
 
Please take a moment to look at my included config files now..
 
Here are some output pieces to show the 'virgin" status of the system.
 

Bacula etc ]# btape -c /etc/bacula/bacula-sd.conf TapeStorage
Tape block granularity is 1024 bytes.
btape: butil.c:258 Using device: "TapeStorage" for writing.
btape: btape.c:335 open_dev /dev/nst0 OK
*label
Enter Volume Name: Tape1
Wrote Volume label for volume "Tape1".
 

Bacula etc ]# bconsole
Connecting to Director Bacula:9101
1000 OK: Bacula-dir Version: 1.36.3 (22 April 2005)
Enter a period to cancel a command.
*list media
Using default Catalog name=MyCatalog DB=bacula
Pool: Default
No results to list.
Pool: MondayPool
No results to list.
Pool: TuesdayPool
No results to list.
Pool: WednesdayPool
No results to list.
Pool: ThursdayPool
No results to list.
Pool: FridayPool
No results to list.
Pool: SaturdayPool
No results to list.
Pool: SundayPool
No results to list.
*list jobs
No results to list.
*status all
Bacula-dir Version: 1.36.3 (22 April 2005) i486-pc-linux-gnu debian 
testing/unstable
Daemon started 14-Oct-05 14:34, 0 Jobs run since started.
 
Scheduled Jobs:
Level          Type     Pri  Scheduled          Name               Volume
===================================================================================
Full           Backup    10  14-Oct-05 22:00    TestFridayBackup   *unknown*
====
 
Running Jobs:
No Jobs running.
====
 
 
 
Device status:
Archive "FileStorage" is not open or does not exist.
Archive "TapeStorage" is not open or does not exist.
 
 
 
Now, how do i proceed to automate the tape naming and such? When i created a 
volume on bconsole with the add command, then tried to run a backup, it 
nagged that the tape had the wrong label, and to insert a tape with another 
name.. But it should just automatically overwrite the existing ones.. :$
 
I don't fully get the naming.. Should i manually give all 8 tapes a name, and 
then add them through bconsole with the same names? But the naming i want 
them to have is dynamic ( Label Format = "Test-$Day$Month$Year" ), so it'll 
nag again that i don't have the correct named tape present, and to insert 
it... :$
 
Thanks a lot for clearing this out for me :$
 
Thanks in advance!
 
Kind regards,

Bart Verwilst
#
# Bacula Director Configuration file
#

###########
## DIRECTOR ##
###########


Director {
  Name =Bacula-dir
  DIRport = 9101
  QueryFile = "/etc/bacula/scripts/query.sql"
  WorkingDirectory = "/var/lib/bacula"
  PidDirectory = "/var/run/bacula"
  Maximum Concurrent Jobs = 1
  Password = ""         # Console password
  Messages = Daemon
}

########
## JOBS ##
########


JobDefs {

  Name = "CommonJob"
  Max Start Delay = 22h
  Storage = Tape
  Messages = Standard
  Type = Backup
  Level = Full
  FileSet = "Test Data Set"
}

Job {
  Name = "TestMondayBackup"
  Client = test-fd
  Schedule = "MondayEvening"
  Pool = MondayPool
  Write Bootstrap = "/var/lib/bacula/TestMondayBackup.bsr"
  JobDefs = CommonJob
}

Job {
  Name = "TestTuesdayBackup"
  Client = test-fd
  Schedule = "TuesdayEvening"
  Pool = TuesdayPool
  Write Bootstrap = "/var/lib/bacula/TestTuesdayBackup.bsr"
  JobDefs = CommonJob
}

Job {
  Name = "TestWednesdayBackup"
  Client = test-fd
  Schedule = "WednesdayEvening"
  Pool = WednesdayPool
  Write Bootstrap = "/var/lib/bacula/TestWednesdayBackup.bsr"
  JobDefs = CommonJob
}

Job {
  Name = "TestThursdayBackup"
  Client = test-fd
  Schedule = "ThursdayEvening"
  Pool = ThursdayPool
  Write Bootstrap = "/var/lib/bacula/TestThursdayBackup.bsr"
  JobDefs = CommonJob
}

Job {
  Name = "TestFridayBackup"
  Client = test-fd
  Schedule = "FridayEvening"
  Pool = FridayPool
  Write Bootstrap = "/var/lib/bacula/TestFridayBackup.bsr"
  JobDefs = CommonJob
}

Job {
  Name = "TestSaturdayBackup"
  Client = test-fd
  Schedule = "SaturdayEvening"
  Pool = SaturdayPool
  Write Bootstrap = "/var/lib/bacula/TestSaturdayBackup.bsr"
  JobDefs = CommonJob
}

Job {
  Name = "TestSundayBackup"
  Client = test-fd
  Schedule = "SundayEvening"
  Pool = SundayPool
  Write Bootstrap = "/var/lib/bacula/TestSundayBackup.bsr"
  JobDefs = CommonJob
}


# Standard Restore template, changed by Console program
Job {
  Name = "RestoreFiles"
  Type = Restore
  Client = test-fd
  FileSet = "Test Data Set"
  Storage = Tape
  Messages = Standard
  Pool = Default
  Where = /tmp/bacula-restores
}




###########
## FILESETS ##
###########


# List of files to be backed up
FileSet {
  Name = "Test Data Set"
  Include {
    Options { signature = SHA1 compression=GZIP }

    File = "c:\\data"

  }
}



#############
## SCHEDULES  ##
#############


Schedule {
  Name = "MondayEvening"
  Run = Full Monday at 10:00pm
}

Schedule {
  Name = "TuesdayEvening"
  Run = Full Tuesday at 10:00pm
}

Schedule {
  Name = "WednesdayEvening"
  Run = Full Wednesday at 10:00pm
}

Schedule {
  Name = "ThursdayEvening"
  Run = Full Thursday at 10:00pm
}

Schedule {
  Name = "FridayEvening"
  Run = Full Friday at 10:00pm
}

Schedule {
  Name = "SaturdayEvening"
  Run = Full Saturday at 10:00pm
}

Schedule {
  Name = "SundayEvening"
  Run = Full Sunday at 10:00pm
}



#############
##    CLIENTS     ##
#############


Client {
  Name = Bacula-fd
  Address = Bacula
  FDPort = 9102
  Catalog = MyCatalog
  Password = ""          # password for FileDaemon
  File Retention = 30 days            # 30 days
  Job Retention = 6 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = test-fd
  Address = 192.168.15.154
  FDPort = 9102
  Catalog = MyCatalog
  Password = "avenger"
  File retention = 30 days
  Job Retention = 6 months
  AutoPrune = yes
}


#############
##    STORAGE   ##
#############


# Definiton of file storage device
Storage {
  Name = File
  Address = 172.16.1.71
  SDPort = 9103
  Password = ""
  Device = FileStorage
  Media Type = File
}


Storage {
  Name = Tape
  Address = 172.16.1.71
  SDPort = 9103
  Password = ""
  Device = TapeStorage
  Media Type = LTO-2
}


#############
##   CATALOGS   ##
#############


Catalog {
  Name = MyCatalog
  dbname = bacula; DB Address = localhost; user = bacula; password = ""
}


#############
##   MESSAGES   ##
#############


Messages {
  Name = Standard

  mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s 
\"Bacula: %t %e of %c %l\" %r"
  operatorcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s 
\"Bacula: Intervention needed for %j\" %r"
  mail = [EMAIL PROTECTED] = all, !skipped
  operator = [EMAIL PROTECTED] = mount
  console = all, !skipped, !saved
  append = "/var/lib/bacula/log" = all, !skipped
}


#
# Message delivery for daemon messages (no job).
Messages {
  Name = Daemon
  mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s 
\"Bacula daemon message\" %r"
  mail = [EMAIL PROTECTED] = all, !skipped            
  console = all, !skipped, !saved
  append = "/var/lib/bacula/log" = all, !skipped
}



############
##    POOLS    ##
############


# Default Pool for jobs, but will hold no actual volumes
Pool {
  Name = Default
  Pool Type = Backup
}

Pool {
  Name = MondayPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 6d
  Accept Any Volume = yes
  Maximum Volume Jobs = 1
  Label Format = "Test-$Day$Month$Year"
}

Pool {
  Name = TuesdayPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 6d
  Accept Any Volume = yes
  Maximum Volume Jobs = 1
  Label Format = "Test-$Day$Month$Year"
}

Pool {
  Name = WednesdayPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 6d
  Accept Any Volume = yes
  Maximum Volume Jobs = 1
  Label Format = "Test-$Day$Month$Year"
}

Pool {
  Name = ThursdayPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 6d
  Accept Any Volume = yes
  Maximum Volume Jobs = 1
  Label Format = "Test-$Day$Month$Year"
}

Pool {
  Name = FridayPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 6d
  Accept Any Volume = yes
  Maximum Volume Jobs = 1
  Label Format = "Test-$Day$Month$Year"
}

Pool {
  Name = SaturdayPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 6d
  Accept Any Volume = yes
  Maximum Volume Jobs = 1
  Label Format = "Test-$Day$Month$Year"
}

Pool {
  Name = SundayPool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 6d
  Accept Any Volume = yes
  Maximum Volume Jobs = 1
  Label Format = "Test-$Day$Month$Year"
}



############
## CONSOLES ##
############

#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
  Name = Bacula-mon
  Password = ""
  CommandACL = status, .status
}
#
# Default  Bacula File Daemon Configuration file
#
#  For Bacula release 1.36.3 (22 April 2005) -- debian testing/unstable
#
# There is not much to change here except perhaps the
# File daemon Name to
#

#
# List Directors who are permitted to contact this File daemon
#
Director {
  Name = Bacula-dir
  Password = ""
}

#
# Restricted Director, used by tray-monitor to get the
#   status of the file daemon
#
Director {
  Name = Bacula-mon
  Password = ""
  Monitor = yes
}

#
# "Global" File daemon configuration specifications
#
FileDaemon {                          # this is me
  Name = Bacula-fd
  FDport = 9102                  # where we listen for the director
  WorkingDirectory = /var/lib/bacula
  Pid Directory = /var/run/bacula
  Maximum Concurrent Jobs = 20
}

# Send all messages except skipped files back to Director
Messages {
  Name = Standard
  director = Bacula-dir = all, !skipped
}
#
# Default Bacula Storage Daemon Configuration file
#


Storage {                             # definition of myself
  Name = Bacula-sd
  SDPort = 9103                  # Director's port      
  WorkingDirectory = "/var/lib/bacula"
  Pid Directory = "/var/run/bacula"
  Maximum Concurrent Jobs = 20
}

#
# List Directors who are permitted to contact Storage daemon
#
Director {
  Name = Bacula-dir
  Password = ""
}

#
# Restricted Director, used by tray-monitor to get the
#   status of the storage daemon
#
Director {
  Name = Bacula-mon
  Password = ""
  Monitor = yes
}

#
# Devices supported by this Storage daemon
# To connect, the Director's bacula-dir.conf must have the
#  same Name and MediaType. 
#

Device {
  Name = FileStorage
  Media Type = File
  Archive Device = /tmp
  LabelMedia = yes;                   # lets Bacula label unlabeled media
  Random Access = Yes;
  AutomaticMount = yes;               # when device opened, read it
  RemovableMedia = no;
  AlwaysOpen = no;
}

Device {
    Name = TapeStorage
    Media Type = LTO-2
    Archive Device = /dev/nst0
    Automatic Mount = yes;
    LabelMedia = yes
    AlwaysOpen = no;
    RemovableMedia = yes;
    RandomAccess = no;
    Changer Command = "/etc/bacula/scripts/mtx-changer %c %o %S %a %d"
    Changer Device = /dev/sg3
    AutoChanger = yes
    Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
}

# 
# Send all messages to the Director, 
# mount messages also are sent to the email address
#
Messages {
  Name = Standard
  director = Bacula-dir = all
}

Reply via email to