TSM 的备份操作主要通过一个名为 dsmc 的命令行客户端来完成,理解 dsmc 的命令结构和常用选项是进行 TSM 备份和恢复的基础。

核心命令:dsmc
dsmc 是 TSM 客户端的“瑞士军刀”,几乎所有操作都通过它来执行,其基本语法如下:
dsmc <command> [options] [files_to_process]
<command>: 具体要执行的命令,如backup,restore,query等。[options]: 命令的选项,用于控制行为,如-filelog,-tapeprompt等。[files_to_process]: 要处理的文件或目录,如果不指定,TSM 会根据配置文件(dsm.opt)中的include或exclude规则来处理。
最常用的备份命令
backup - 备份文件或目录
这是最核心的备份命令,用于将本地文件系统中的数据备份到 TSM 服务器。
基本语法:
dsmc backup <source_path>
示例:

# 备份单个文件 dsmc backup /home/user/document.txt # 备份整个目录(包括其所有子目录和文件) dsmc backup /home/user/project/ # 备份当前目录下的所有 .log 文件 dsmc backup *.log
常用选项:
| 选项 | 全称 | 描述 |
|---|---|---|
-subdir=yes |
subdir |
非常重要,包含所有子目录,默认情况下,TSM 可能不备份子目录,除非在配置文件中设置或使用此选项。 |
-tapeprompt=yes |
tapeprompt |
当需要加载磁带时,提示用户操作,通常用于脚本中设置为 no 以实现自动化。 |
-filelog=/path/to/logfile |
filelog |
将备份操作的详细输出(处理的每个文件)记录到指定的日志文件中。 |
-verbose |
verbose |
显示更详细的信息,如每个文件备份的状态(成功、失败、跳过)。 |
-description="My Project Backup" |
description |
为本次备份操作添加一个描述,这个描述会与备份数据关联,方便日后查询和管理。 |
-domain=/home/user |
domain |
指定一个备份域,该域中的文件会被备份,这等同于直接跟路径,但更明确。 |
-incr |
incremental |
执行增量备份,只备份自上次备份以来修改过的文件,这是最常用的备份类型。 |
| 双连字符,用于分隔 TSM 命令选项和文件名,当文件名以 开头时非常有用。 |
增量备份 vs. 完整备份
- 增量备份 (
-incr): 强烈推荐,这是最高效的备份方式,TSM 会记录文件的最后修改时间,只备份那些发生变化的文件,恢复时,需要从最新的完整备份开始,依次应用后续的增量备份。 - 完整备份 (
-full): 备份指定域中的所有文件,无论它们是否被修改过,耗时且占用资源大,通常只在特定策略下(如每周日)执行。
增量备份示例:
# 执行一次增量备份 /home/user/data,并将详细日志记录到 /var/log/tsm_backup.log dsmc backup -subdir=yes -incr -verbose -filelog=/var/log/tsm_backup.log /home/user/data
incremental - 执行增量备份
这是 backup -incr 的一个别名,功能完全相同,使用哪个取决于个人习惯。
# 与上面的命令效果完全一样 dsmc incremental -subdir=yes -verbose /home/user/data
辅助和管理命令
备份完成后,您需要管理这些备份数据。
query - 查询备份数据
这是最常用的查询命令,用于查看哪些文件已经被备份、备份的状态等。
基本语法:
dsmc query <object> [options]
常用查询对象:
| 对象 | 描述 | 示例 |
|---|---|---|
backup |
查询所有已备份的文件列表。 | dsmc query backup |
filespace |
查询客户端在服务器上注册的文件空间(即盘符或顶级目录)。 | dsmc query filespace |
archive |
查询已归档的文件,归档通常用于长期保存单个重要文件。 | dsmc query archive |
query backup 常用选项:
| 选项 | 描述 | 示例 |
|---|---|---|
-date=2 |
查询最近2天内的备份数据。 | dsmc query backup -date=2 |
-volser=TAPE01 |
查询存储在特定卷(磁带或存储池)上的备份数据。 | dsmc query backup -volser=TAPE01 |
-description="My Project" |
查询带有特定描述的备份数据。 | dsmc query backup -description="My Project" |
/home/user/data |
查询特定路径的备份数据。 | dsmc query backup /home/user/data |
示例:
# 查询 /home/user 目录下所有文件的备份状态 dsmc query backup /home/user # 查询最近3天内备份的文件 dsmc query backup -date=3 # 查询备份描述为 "Monthly Full Backup" 的文件 dsmc query backup -description="Monthly Full Backup"
restore - 恢复文件或目录
当数据丢失或损坏时,使用 restore 命令从 TSM 服务器恢复数据。
基本语法:
dsmc restore <source_tsm_path> <destination_local_path>
关键点:
<source_tsm_path>: 是指在 TSM 服务器上的逻辑路径,而不是本地的路径,这个路径通常与您当初备份时的路径一致。<destination_local_path>: 恢复到本地的目标路径,如果目录不存在,TSM 会尝试创建。
常用选项:
| 选项 | 描述 | 示例 |
|---|---|---|
-subdir=yes |
恢复所有子目录。 | dsmc restore /home/user /tmp/restore |
-replace=all |
非常强大且危险,覆盖本地所有同名文件,无论其内容是否更新。 | dsmc restore -replace=all /home/user /tmp/restore |
-replace=never |
绝不覆盖本地文件,如果本地文件较新,恢复会跳过。 | dsmc restore -replace=never /home/user /tmp/restore |
-pick |
交互式选择,当有多个版本的备份文件时,会提示您选择要恢复哪个版本。 | dsmc restore -pick /home/user/old_file.txt /tmp/ |
-date=3 |
恢复3天前的版本。 | dsmc restore -date=3 /home/user /tmp/restore |
-latest |
默认行为,恢复文件的最新版本。 | dsmc restore -latest /home/user /tmp/restore |
恢复示例:
# 将 /home/user 在 TSM 上的完整备份恢复到本地的 /mnt/recovery/user dsmc restore /home/user /mnt/recovery/user # 恢复特定文件,并选择一个旧版本进行恢复 dsmc restore -pick /home/user/document.docx /tmp/ # 恢复 5 天前的版本,并覆盖本地所有同名文件 dsmc restore -date=5 -replace=all /home/project /mnt/recovery/project
实用技巧与最佳实践
-
使用配置文件 (
dsm.opt):- 将常用选项(如
servername,commmethod,tcpport,compressalways,subdir=yes)写入/etc/dsm.opt(Linux) 或dsm.opt(Windows),避免每次命令都输入。 - 使用
include和exclude规则来定义默认要备份或排除的目录/文件。
- 将常用选项(如
-
使用调度器 (
crontab/ Task Scheduler):- 将备份命令放入
crontab(Linux) 或 Windows 任务计划程序中,实现自动化备份。 - 示例 (crontab):
0 2 * * * /usr/bin/dsmc backup -incr -filelog=/var/log/tsm_cron.log /home/data(每天凌晨2点执行增量备份)。
- 将备份命令放入
-
日志管理:
- 始终使用
-filelog选项将备份/恢复的输出重定向到日志文件。 - 定期检查日志文件,确保备份成功,并排查错误。
- 理解存储策略:
- 备份的数据会被存放在 TSM 服务器的存储池中,存储池的类型(如磁盘、磁带)和管理类决定了数据的保留期、复制策略和最终存储位置。
- 确保您的客户端被分配了正确的管理类,以满足您的业务需求(如快速恢复、长期归档)。
- 定期测试恢复:
- 备份的最终目的是为了恢复,定期从 TSM 恢复文件到测试环境,验证备份数据的完整性和可用性。
常见问题排查
ANS1017I或AEST3001I错误: 通常是网络连接问题,检查 TSM 服务器名、端口、防火墙设置。ANS1197INo files were backed up: 检查路径是否正确,文件是否存在,以及include/exclude规则是否排除了该文件。ANS2025IBackup not attempted because of previous errors: 在执行备份前,先前的检查步骤(如连接、认证)已经失败,导致备份中止,需要先解决前面的错误。
希望这份详细的指南能帮助您掌握 TSM 的备份命令!
