有没有一种方法可以在Bacula作业中包含多个主机和多个FileSet?

时间:2019-02-25 19:15:31

标签: bacula

编辑#1

From the docs

  

只能为任何作业指定一种类型(备份,还原等)。如果要在一个或多个客户端上备份多个文件集,则必须为每个客户端定义一个作业。

我猜答案是“否”。 FML


我创建了一些如下所示的Bacula FileSet,以包含在Bacula Job中。我需要在六个不同的主机(客户端)上运行相同的作业,但是我不知道如何执行该作业。

因此,我设置了一些文件集,如下所示:

# Wildfly FileSet
FileSet {
  Name = "Wildfly"
  Include {
    Options {
      signature = MD5
      compression = GZIP
    }
    File = /opt/wildfly/
  }
}
# Scripts, Crontabs and Configuration files FileSet
FileSet {
  Name = "Scripts Crontabs e Conf"
  Include {
    Options {
      signature = MD5
      compression = GZIP
    }
    File = /usr/local/scripts/
    File = /var/spool/cron/crontabs/
    File = /etc
  }
  Exclude {
    File = /etc/ssl/
    File = /etc/ldap/
  }
}

然后我创建了一个工作:

Job {
  Name = "BackupMyHostName"
  JobDefs = "DefaultJob"
  Client = MyHostName-fd
  Pool = MyBackupPolicy
  FileSet="Wildfly"
}

如果我必须为每个不同的文件集复制并粘贴相同的代码六次,那就太复杂了。我前面还有40台(四十台)服务器。

我是Bacula的新手,但是已经有一个星期了,直到现在我才能够掌握该系统的一些定义。

我需要在正确的方向上推动这项工作。

1 个答案:

答案 0 :(得分:1)

您猜到了,Bacula在单个Job中支持单个FileSet和单个Client。您的不同作业可以共享相同的单个FileSet,Pool或Schedule配置,从而简化了配置。另外,您可以设置作业模板:JobDefs,可用于简化多个复制粘贴作业配置。 因此,假设您有一个要在多个客户端的多个作业中使用的单个FileSet。首先是一些示例配置:

文件集:

# Scripts, Crontabs and Configuration files FileSet
FileSet {
  Name = "Scripts Crontabs e Conf"
  Include {
    Options {
      signature = MD5
      compression = GZIP
    }
    File = /usr/local/scripts/
    File = /var/spool/cron/crontabs/
    File = /etc
  }
  Exclude {
    File = /etc/ssl/
    File = /etc/ldap/
  }
}

客户:

Client {
  Name = client1
  Address = client1.example.com
}
Client {
  Name = client2
  Address = client2.example.com
}

然后创建一个模板JobDefs:

JobDefs {
  Name = JD
  Type = Backup
  Priority = 10
  Messages = "Standard"
  WriteBootstrap = "/opt/bacula/bsr/%c-%n.bsr"
  Storage = bacula-sd
  FileSet = "Scripts Crontabs e Conf"
}

因此,在这种情况下,您可以创建简单的作业:

Job {
  Name = job1
  JobDefs = JD
  Client = client1
}
Job {
  Name = job2
  JobDefs = JD
  Client = client2
}

仅此而已。希望对您有所帮助。