0

编辑#1

从文档

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

我猜这个问题的答案是“不”。FML


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

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

# 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 的新手,但已经一个星期了,直到现在我才能够掌握系统的一些定义。

我需要在正确的方向上推动这项任务。

4

1 回答 1

1

如您所料,Bacula 在单个 Job 中支持单个 FileSet 和单个 Client。您的不同作业可以共享相同的单个文件集、池或计划配置,从而简化它。此外,您可以设置作业模板: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
}

就这样。我希望它有所帮助。

于 2019-02-27T18:00:49.573 回答