官方介绍

文件状态备份

在0.10.2中,添加了一项新功能,用于备份由file.managed和file.recurse状态替换的文件。新功能称为备份模式。设置备份模式很容易,但是可以在许多地方进行设置。

可以在minion配置文件中设置backup_mode:

backup_mode: minion

或者可以为每个文件设置它:

/etc/ssh/sshd_config:
  file.managed:
    - source: salt://ssh/sshd_config
    - backup: minion

备份文件

文件将保存在名为的目录下的minion cachedir中 file_backup。文件将位于相对于它们在根文件系统下的位置,并附加时间戳。这应该使它们易于浏览。

与备份互动

从0.17.0版开始,将可以列出,还原和删除以前创建的备份。

清单

可以使用file.list_backups以下命令列出给定文件的备份:

# salt foo.bar.com file.list_backups /tmp/foo.txt
foo.bar.com:
    ----------
    0:
        ----------
        Backup Time:
            Sat Jul 27 2013 17:48:41.738027
        Location:
            /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:41_738027_2013
        Size:
            13
    1:
        ----------
        Backup Time:
            Sat Jul 27 2013 17:48:28.369804
        Location:
            /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:28_369804_2013
        Size:
            35

恢复中

恢复很容易使用file.restore_backup,只需传递路径和找到的数字ID file.list_backups:

# salt foo.bar.com file.restore_backup /tmp/foo.txt 1
foo.bar.com:
    ----------
    comment:
        Successfully restored /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:28_369804_2013 to /tmp/foo.txt
    result:
        True
为了以防万一,可以file.list_backups再次备份现有文件,可以 再次运行:
# salt foo.bar.com file.list_backups /tmp/foo.txt
foo.bar.com:
    ----------
    0:
        ----------
        Backup Time:
            Sat Jul 27 2013 18:00:19.822550
        Location:
            /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_18:00:19_822550_2013
        Size:
            53
    1:
        ----------
        Backup Time:
            Sat Jul 27 2013 17:48:41.738027
        Location:
            /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:41_738027_2013
        Size:
            13
    2:
        ----------
        Backup Time:
            Sat Jul 27 2013 17:48:28.369804
        Location:
            /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:28_369804_2013
        Size:
            35

注意

由于未运行任何状态,因此还原文件不会触发对该文件的任何监视。因此,如果要还原服务的配置文件,则可能仍需要运行service.restart。

删除中

可以使用file.delete_backup以下方法删除备份:

# salt foo.bar.com file.delete_backup /tmp/foo.txt 0
foo.bar.com:
    ----------
    comment:
        Successfully removed /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_18:00:19_822550_2013
    result:
        True