Avamar:容量管理 — 如何使用“modify-snapups”工具批量删除备份或使备份到期

摘要: 如何使用“modify-snapups”工具批量删除备份或使备份到期。

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

本文将介绍如何在 Avamar 系统上使用 modify-snapups 工具,以帮助解决以下一些难题。
  • 管理员希望批量删除备份,以解决或防止高容量情况。
  • 系统将变满,尽管减少了保留策略,但此作仅影响新备份。此外,还需要更改现有备份的到期时间。
  • 现有备份设置了不正确的到期日期。
  • 业务要求发生变化,组织必须存储比最初计划更多或更少的备份。

    原因

    modify-snapups.sh”应用工具是默认情况下存在于 Avamar 应用工具节点上的 /usr/local/avamar/bin 下的脚本。

    解决方案

    该实用程序替换了脚本“expire-snapups”和“delete-snapups”,它们是该工具的早期形式。这两个早期的脚本都已弃用,命令现在直接调用 modify-snapups,如果运行(请参阅注释中的项目 #1)。

    到期和删除模式:    
    modify-snapups使用到期模式或删除模式运行。
    modify-snapups --help
    modify-snapups - modify snapups
    Version: 7.1.0-370 (1.11)
    Usage: modify-snapups [--mode={delete|expire}] [--help] [options ]
    This program does nothing when invoked as modify-snapups.
    Instead, invoke this program as delete-snapups or expire-snapups,
    or else with --mode={delete|expire} before any other options.
    传递给每个模式的标志几乎完全相同,可以通过将 --help 附加到命令来查看。(请参阅注释中的项目 #2)

    脚本的作用是什么?  
    自行运行 modify-snapups 是安全的,因为它不会对 Avamar Server 进行任何更改。

    当使用正确的参数运行时,该实用程序将生成一个包含命令列表的脚本。运行脚本会以串行方式运行命令列表,以便更改每个备份的到期日期或将其删除。

    这些命令是根据传递给 modify-snapup 的标志生成的。  

    用户可以决定是否包含备份:      
    • 在特定日期范围内(--after / --before
    • 在某个域 (--domain) 下
    • 对于某个客户端
    • 是否包括 AVI、EM、MC 的内部 Avamar 数据库备份
    • 是否在复制目标上包括备份

    命令

    示例示例 1:检查“mydomain”下的所有备份,并创建一个脚本,使 2015 年 3 月 1 日之前创建的备份过期。
    modify-snapups --mode=expire --domain=/mydomain --before=2015-03-01 > expire-backups-output-script.txt
    该脚本将生成 mccli 备份编辑命令的列表,以对相应的备份执行 MODIFY(在本例中为到期)。不符合条件的那些也会列出,但以哈希 (#) 为前缀,并且描述为 CONSERVE:   
    # MODIFY    Snapup date: 2015-02-17 08:04:30 GMT Lab#: 418     Replicated: N/A
    echo running: "mccli backup edit --domain=/mydomain --name=myclient.avamar.com --labelNum=418 --created=2015-02-17 --expiration=2015-05-18"
    mccli backup edit --domain=/mydomain --name=myclient.avamar.com --labelNum=418 --created=2015-02-17 --expiration=2015-05-18
    # CONSERVE Snapup date: 2015-04-17 08:05:18 IST Lab#: 457     Replicated: N/A
    # echo running: "mccli backup edit --domain=/mydomain --name=myclient.avamar.com --labelNum=457 --created=2015-04-17 --expiration=2015-07-16"
    # mccli backup edit --domain=/mydomain --name=myclient.avamar.com --labelNum=457 --created=2015-04-17 --expiration=2015-07-16
    # CONSERVE Snapup date: 2015-04-16 08:03:46 IST Lab#: 456     Replicated: N/A
    # echo running: "mccli backup edit --domain=/mydomain --name=myclient.avamar.com --labelNum=456 --created=2015-04-16 --expiration=2015-07-15"
    # mccli backup edit --domain=/mydomain --name=myclient.avamar.com --labelNum=456 --created=2015-04-16 --expiration=2015-07-15

    示例 2:删除 mydomain 下创建超过一个月前的所有备份。
    modify-snapups --mode=delete --domain=/mydomain --before='1 month ago' > output-script.txt

    使用正确的日期,如示例 #1 所示,但为了说明,这里使用了“友好”的 Linux 日期表示法(1 个月前)。

    脚本包含如下所示的输出(由于空间原因已截断)。在标头中,脚本准确解释了它正在执行的作以及生效的参数。该脚本于 2015 年 4 月 17 日运行。
    # ======================================================================
    # CLIENT: /mydomain/server
    #     Operation: DELETE selected snapups
    #     After: "June 1 1999 00:00:00" (928191600) Tue Jun  1 00:00:00 IST 1999
    #     Before: "1 month ago" (1426614045) Tue Mar 17 17:40:45 GMT 2015
    # ======================================================================
    # *** NO SNAPUPS FOUND ***
    # ======================================================================
    # CLIENT: /mydomain/myclient.avamar.com
    #     Operation: DELETE selected snapups
    #     After: "June 1 1999 00:00:00" (928191600) Tue Jun  1 00:00:00 IST 1999
    #     Before: "1 month ago" (1426614045) Tue Mar 17 17:40:45 GMT 2015
    # ======================================================================
    # CONSERVE Snapup date: 2015-03-18 08:03:31 GMT Lab#: 437     Replicated: N/A
    # echo running: "mccli backup delete --domain=/mydomain --name=myclient.avamar.com --labelNum=437 --created=2015-03-18 --force=true"
    # mccli backup delete --domain=/mydomain --name=myclient.avamar.com --labelNum=437 --created=2015-03-18 --force=true
    # MODIFY    Snapup date: 2015-03-16 08:03:57 GMT Lab#: 435     Replicated: N/A
    echo running: "mccli backup delete --domain=/mydomain --name=myclient.avamar.com --labelNum=435 --created=2015-03-16 --force=true"
    mccli backup delete --domain=/mydomain --name=myclient.avamar.com --labelNum=435 --created=2015-03-16 --force=true
    # MODIFY    Snapup date: 2015-03-13 08:01:30 GMT Lab#: 434     Replicated: N/A
    echo running: "mccli backup delete --domain=/mydomain --name=myclient.avamar.com --labelNum=434 --created=2015-03-13 --force=true"
    mccli backup delete --domain=/mydomain --name=myclient.avamar.com --labelNum=434 --created=2015-03-13 --force=true
    # MODIFY    Snapup date: 2015-03-12 08:09:20 GMT Lab#: 433     Replicated: N/A
    echo running: "mccli backup delete --domain=/mydomain --name=myclient.avamar.com --labelNum=433 --created=2015-03-12 --force=true"
    mccli backup delete --domain=/mydomain --name=myclient.avamar.com --labelNum=433 --created=2015-03-12 --force=true

    使用 MODIFY 列出的备份会使用“mccli backup delete”命令进行更改。这些备份的“创建日期”都早于 1 个月前(2015 年 3 月 17 日)。

    示例 3:延长现有备份的到期时间。
    以下命令将获取在 2018 年 5 月 1 日至 15 日期间为 /clients 域下的客户端创建的备份,并创建一个脚本,该脚本在运行时会替换这些备份的过期时间,使其在创建备份的 100 天后过期。
    modify-snapups --domain=/clients/ --mode=expire --after='2018-05-01' --before='2018-05-15'  --days=100 > expire-backups-output-script.txt
    .
    8<----------------------SNIP------------------8<
    .
    # ======================================================================
    # CLIENT: /clients/server.asl.lab.emc.com
    #     Operation: EXPIRE selected snapups
    #     After: "2018-05-01" (1525158000) Tue May  1 00:00:00 PDT 2018
    #     Before: "2018-05-15 " (1526367600) Tue May 15 00:00:00 PDT 2018
    # ======================================================================
    # MODIFY    Snapup date: 2018-05-07 22:00:52 PDT   Lab#: 498     Replicated: N/A
    echo running: "mccli backup edit --domain=/clients --name=server --labelNum=498 --created=2018-05-07 --expiration=2018-08-15"
    mccli backup edit --domain=/clients --name=server --labelNum=498 --created=2018-05-07 --expiration=2018-08-15
    # MODIFY    Snapup date: 2018-05-06 22:00:46 PDT   Lab#: 497     Replicated: N/A
    echo running: "mccli backup edit --domain=/clients --name=server --labelNum=497 --created=2018-05-06 --expiration=2018-08-14"
    mccli backup edit --domain=/clients --name=server --labelNum=497 --created=2018-05-06 --expiration=2018-08-14
    8<----------------------SNIP------------------8< .
    # CONSERVE  Snapup date: 2018-06-25 22:00:41 PDT   Lab#: 501     Replicated: N/A
    # echo running: "mccli backup edit --domain=/clients --name=server --labelNum=501 --created=2018-06-25 --expiration=2018-10-03"
    # mccli backup edit --domain=/clients --name=server --labelNum=501 --created=2018-06-25 --expiration=2018-10-03
    # CONSERVE  Snapup date: 2018-04-30 22:00:57 PDT   Lab#: 491     Replicated: N/A
    # echo running: "mccli backup edit --domain=/clients --name=server --labelNum=491 --created=2018-04-30 --expiration=2018-08-08"
    # mccli backup edit --domain=/clients --name=server --labelNum=491 --created=2018-04-30 --expiration=2018-08-08

    运行脚本以修改或删除备份

    强烈建议在运行此过程之前设置检查点。

    创建脚本后,请仔细检查内容。当对要执行的作感到满意时,将脚本设置为可执行。

    例如,创建一个脚本以删除 /mydomain 下超过 6 个月的所有备份。

    将脚本设置为可执行文件并检查权限:    
    admin@utility:~/modsnap/>: chmod +x delete-backups-mydomain-before-6monthsago.txt
    admin@utility:~/modsnap/>:  ls -l
    -rwx------ 1 admin admin 15016 Apr 17 18:55 delete-backups-mydomain-before-6monthsago.txt

    运行脚本。将输出重定向到另一个文件,以记录所做的更改。
    admin@utility:~/modsnap/>: ./delete-backups-mydomain-before-6monthsago.txt
    running: mccli backup delete --domain=/mydomain --name=myclient.customer.com --labelNum=323 --created=2014-09-25 --force=true
    0,22553,Backup deleted.
    Attribute  Value
    ---------- --------------------------------------
    path       /mydomain/myclient.customer.com
    retention  N
    labelnum   323
    createtime 2014-09-25 18:07:04 IST
    plugin     3001

    如果脚本运行完成并再次运行,则会显示:    
    1,22552,Backup does not exist

    如果脚本需要很长时间才能运行,并且必须停止,则可以再次运行。为避免重新检查以前删除的备份,请手动编辑脚本以删除已处理的命令。或者,再次重新生成脚本。

    生成和运行脚本可能需要花费大量时间。通过将工作分成较小的时间段或单个领域来“分而治之”是有帮助的。

    其他信息

    项目 #1

    ls -ls /usr/local/avamar/bin/ | grep modify-snapups
         0 lrwxrwxrwx 1 root  root         14 Nov 28 19:42 delete-snapups -> modify-snapups
         0 lrwxrwxrwx 1 root  root         14 Nov 28 19:42 expire-snapups -> modify-snapups
        24 -rwxr-xr-x 1 root  root      24185 Sep  8 23:46 modify-snapups


    术语“snapup”是一个过时的 Avamar 术语,可理解为备份的意思。它是 snapshot 和 backup 这两个词的混合体。

    项目 #2
    有关如何使用删除和过期模式的完整文档可通过在命令中附加 --help 获得。

    modify-snapups --mode=expire --help
    modify-snapups --mode=delete --help


    项目 #3
    请注意以下文章。 

    • 内部文章:000191562 : Avamar - modify-snapups --domain 标记未按预期工作,导致脚本返回 “NO SNAPUPS FOUND”。

    请观看此视频:  

     


     

    受影响的产品

    Avamar

    产品

    Avamar, Avamar Client, Avamar Server
    文章属性
    文章编号: 000058216
    文章类型: Solution
    上次修改时间: 14 1月 2026
    版本:  10
    从其他戴尔用户那里查找问题的答案
    支持服务
    检查您的设备是否在支持服务涵盖的范围内。