NetWorker:如何使用 nsrpolicy 命令
摘要: 本文提供有关使用 NetWorker nsrpolicy 命令执行 NetWorker 管理任务的信息。
说明
而 nsrpolicy 命令是用于管理和监视 NetWorker 策略的管理 NetWorker 命令。许多相同的功能从 NetWorker 管理 (NMC) 和 Web UI (NWUI) 执行;然而 nsrpolicy 为管理员提供命令行功能。
nsrpolicy 必须在以下条件之一下运行:
- 您正在从提升的提示符运行命令。Windows 上的管理员命令/PowerShell 提示符或 root/
sudoshell 在 Linux 上。 - 您从非提升提示符运行命令,但已发出 NetWorker 身份验证令牌:
nsrlogin -u USERNAME
nsrlogin 使用 NetWorker 用户凭据为 NetWorker 管理发出基于时间的身份验证令牌。如果您正在使用 nsrlogin,请务必使用以下命令结束会话 nsrlogout 活动结束时。这可防止过时的令牌干扰后续命令。
一般使用概述:
nsrpolicy
policy
create | delete | display | update | list
workflow
create | delete | display | update | list
action
create | delete | display | update | list
group
create | delete | display | update
start
Must have: -p [policy] -w [workflow]
Other options (NetWorker 9.2 and above for -c option): -c { <client_name1:[save_set_path_1;save_set_path_2],client_name2...> -s [NetWorker server] -D [debug level] -h
stop
Must have: Either -j [jobid] or -p [policy] -w [workflow]
Other options: -s [NetWorker server] -D [debug level] -h
monitor
Must have: -p [policy]
Other options: -w [workflow] -c [client] -g [group] -d [details] -n [non-tabular] -j [jobid] -s [NetWorker server] -D [debug level] -h
input-file
Must have: -f [file name]
Other options: [--stop_on_error -S <0/1; default:0 (Do not stop)>] [--stop_on_error -S <0/1; default:0 (Do not stop)>] -D [debug level] -h
restart
Must have: Either -j [jobid] or -p [policy] -w [workflow]
Other options: -s [NetWorker server] -D [debug level] -h
migrate
Must have what is to be migrated: group | schedule_clone | nas_device | vmware_policy
Other options: -s [NetWorker server] -D [debug level] -h
help
示例:
列出数据区中的对象:
nsrpolicy [object] list
对象:策略、工作流、作
nsrpolicy policy list nsrpolicy workflow list -p "VMware Protection" nsrpolicy action list -p "VMware Protection" -w "Full VM"
显示作的属性:nsrpolicy action display -p [policy] -w [workflow] -A [action]
nsrpolicy action display -p "VMware Protection" -w "Full VM" -A backup
显示组的属性:nsrpolicy group display -g [group]
nsrpolicy group display -g "VMware Protection - Full VM"
禁用或启用作:nsrpolicy action update [action type backup subtype] -p [policy] -w [workflow] -A [action] -e [no/yes]
nsrpolicy action update backup traditional -p "Client Protection" -w "Traditional Client" -A backup -e no nsrpolicy action update backup traditional -p "Client Protection" -w "Traditional Client" -A backup -e yes
要更改与作关联的计划,请执行以下作:nsrpolicy action update [action type backup subtype] -p [policy] -w [workflow] -A [action] -t [schedule]
nsrpolicy action update backup traditional -p "Client Protection" -w "Traditional Client" -A backup -t full,incr,incr,incr,incr,incr,incr
使用输入文件将客户端添加到组(客户端实例必须已存在):
使用以下文本创建输入文件:group update client -g [group] --add_clnt_list [client]:[saveset]
[root@nsr ~]# cat AddTraditionalClient.txt group update client -g "Client Protection - Traditional Client" --add_clnt_list win-client03.amer.lan:All
nsrpolicy input-file -f "[path to input file]"
[root@nsr ~]# nsrpolicy input-file -f /root/AddTraditionalClient.txt 121415:nsrpolicy: Command from file: group update client -g "Client Protection - Traditional Client" --add_clnt_list win-client03.amer.lan:All 133584:nsrpolicy: Group 'Client Protection - Traditional Client' was successfully updated
使用注释、开始时间和组的非默认值创建新工作流:nsrpolicy workflow create -p [policy] -w [workflow] -c [comment] -g [group] -S [start time]
nsrpolicy workflow create -p "Client Protection" -w "Traditional Client - Linux" -c "Linux Clients" -g "Linux - Clients" -S "10:00"
使用目标池的非默认值和成功阈值创建新作:nsrpolicy action create [action type backup subtype] -p [policy] -w [workflow] -A [action] -o [target pool] -u [success threshold]
nsrpolicy action create backup traditional -p "Client Protection" -w "Traditional Client - Linux" -A backup -o "Data Domain Default" -u success
启动工作流(无法以这种方式启动作。您必须启动整个工作流)。nsrpolicy start -p [policy] -w [workflow]
nsrpolicy start -p "Client Protection" -w "Traditional Client - Linux"
停止工作流:nsrpolicy stop -p [policy] -w [workflow]
nsrpolicy stop -p "Client Protection" -w "Traditional Client - Linux"
jobkill管理此进程:
[root@nsr ~]# nsrpolicy start -p "Client Protection" -w "Traditional Client - Linux" 144091:nsrpolicy: Workflow 'Client Protection/Traditional Client - Linux' started and has job id 1248743 [root@nsr ~]# [root@nsr ~]# jobkill -j 1248743 Terminating job 1248743
在工作流中启动一个客户端:nsrpolicy start -p [policy] -w [workflow] -c "[client]:[saveset]
nsrpolicy start -p "Client Protection" -w "Traditional Client - Linux" -c "rhel-client03.amer.lan:All"
监视策略中工作流的最新运行:nsrpolicy monitor -p [policy] -dn
nsrpolicy monitor -p "Client Protection" -dn
nsrwatch 用于监视会话的命令。
特定近期作业的详细作业输出:nsrpolicy monitor -j [job id]
nsrpolicy monitor -j 290473
jobquery管理此进程:
jobquery
print type: backup action job
要在调试模式下启动工作流,请执行以下作: nsrpolicy 不如 nsrworkflow 命令,因为”nsrpolicy start' 不会将调试输出记录到 /nsr/logs/policy 文件夹,其中 nsrworkflow 将 .raw 文件中定义。nsrworkflow -D[Debug Level] -p [policy] -w [workflow] -A "[action]"
nsrworkflow -D9 -p "Client Protection" -w "Traditional Client - Linux"
有关 NetWorker 调试级别的更多信息,请参阅:NetWorker:调试信息级别
nsrworkflow debug 仅调试 NetWorker 服务器端消息。它不会向在执行备份的客户端/系统上执行的作添加调试。
启用示例 save -D3 使用 nsradmin 命令行实用程序在 NetWorker 客户端上备份:
[root@nsr ~]# nsradmin NetWorker administration program. Use the "help" command for help, "visual" for full-screen mode. nsradmin> . type : NSR Client; name : rhel-client03.amer.lan Current query set nsradmin> update backup command : save -D3 backup command: save -D3; Update? y updated resource id 48.0.46.11.0.0.0.0.231.177.13.90.10.60.28.121(13)
在上面的示例中,启动客户端工作流时,会 save 进程在启用调试的客户端上启动 (-D3) 在此实例中。
要调试特定的备份功能,请参阅:NetWorker:如何调试备份操作
测 井:
所有策略和工作流备份都记录到 NetWorker 日志目录:
Linux: /nsr/logs/policy/POLICY_NAME
Windows(默认值): C:\Program Files\EMC NetWorker\nsr\logs\policy\POLICY_NAME
常规服务器消息记录在daemon.raw中:
Linux: /nsr/logs/daemon.raw
Windows(默认值): C:\Program Files\EMC NetWorker\nsr\logs\daemon.raw
NetWorker:如何使用nsr_render_log呈现.raw日志文件
jobsdb 保留期(默认为 72 小时)。超过保留期的日志将在到期任务期间从系统中删除。
脚本示例:
nsrpolicy 功能超越单行使用,以及如何从 CLI 管理其 NetWorker 服务器。请勿在未测试或了解功能的情况下在您的环境中实施/使用脚本。NetWorker 支持不提供任何脚本解决方案或脚本支持。
Linux:
示例 1: 列出所有策略及其工作流。此 shell 脚本遍历 NetWorker 配置中的策略列表,并运行命令”nsrpolicy workflow list“,以便为每个策略输出工作流名称列表。
#!/usr/bin/sh
IFS=$'\n'
fullpolicylist=(`nsrpolicy policy list`)
for lp in "${fullpolicylist[@]}"
do
echo " "
echo "POLICY: $lp"
echo "Workflows"
nsrpolicy workflow list -p "$lp"
done
示例 2: 列出所有策略及其工作流和作以及目标池。此 shell 脚本运行三个循环以获取策略、工作流和作的列表。将输出每个节点的名称以及作的目标存储节点参数。
#!/usr/bin/env bash
set -euo pipefail
# Read policies into an array (one per line)
mapfile -t fullpolicylist < <(nsrpolicy policy list)
for lp in "${fullpolicylist[@]}"; do
echo "------------------"
echo "POLICY: $lp"
# Read workflows for this policy
mapfile -t wflist < <(nsrpolicy workflow list -p "$lp")
for w in "${wflist[@]}"; do
echo
echo "WORKFLOW: $w"
# Read actions for this workflow
mapfile -t alist < <(nsrpolicy action list -p "$lp" -w "$w")
for a in "${alist[@]}"; do
echo "ACTION: $a"
# Pull DestinationPool value
destpool=$(
nsrpolicy action display -p "$lp" -w "$w" -A "$a" \
| awk -F': ' '/DestinationPool/ {print $2; exit}'
)
echo "Destination Pool: ${destpool:-<none>}"
done
done
done
Windows PowerShell:
示例 1:工作流列表。通过遍历策略列表并为每个策略运行“nsrpolicy workflow list”命令,列出策略及其工作流。
$listp = nsrpolicy policy list
foreach ($i in $listp)
{
write-host "-----"
write-host "POLICY: $i"
write-host "WORKFLOWS: "
nsrpolicy workflow list -p "$i"
}
示例 2: 作列表。创建了三个循环。用于列出策略的循环,然后用于列出每个策略的所有工作流的循环,然后列出每个工作流的所有作的循环。
$listp = nsrpolicy policy list
foreach ($p in $listp)
{
write-host "-----"
write-host "POLICY: $p"
write-host "WORKFLOWS: "
$wlist = nsrpolicy workflow list -p $p
foreach ($w in $wlist)
{
write-host "$w"
write-host "ACTIONS:"
$alist = nsrpolicy action list -p "$p" -w "$w"
foreach ($a in $alist)
{
write-host "$a"
}
}
}其他信息
第一步是在命令行上使用 nsrlogin 命令,使用与登录 NetWorker Management Console 时相同的凭据登录到 NetWorker 服务器。运行 nsrlogin 命令时,NetWorker 主机将联系 NetWorker AuthenticationService 以验证用户登录凭据。
nsrlogin -u [用户名] - p [密码]
nsrpolicy 命令在每个级别都有许多不同的选项。 在每个步骤中按 Enter 键将为您提供命令下一部分可用选项的完整列表:
nsrpolicy
policy
create | delete | display | update | listworkflowcreate | delete | display | update | list workflow create | delete | display | update | list
action
create | delete | display | update | list
group
create | delete | display | display | update
start
必须具备: -p [策略] -w [工作流]
其他选项(NetWorker 9.2 及更高版本用于 -c 选项): -c { <client_name1:[save_set_path_1;save_set_path_2],client_name2...> -s [NetWorker 服务器] -D [调试级别] -h
停
必须具备: -j [jobid] 或 -p [policy] -w [workflow]
其他选项: -s [NetWorker 服务器] -D [调试级别] -h
监控
必须具备: -p [政策]
其他选项: -w [工作流] -c [客户端] -g [组] -d [详细信息] -n [非表格] -j [jobid] -s [NetWorker 服务器] -D [调试级别] -h
输入文件
必须具备: -f [文件名]
其他选项: [--stop_on_error -S <0/1; default:0 (Do not stop)>] [--stop_on_error -S <0/1; default:0 (Do not stop)>] -D [debug level] -h
restart
必须具备: -j [jobid] 或 -p [policy] -w [workflow]
其他选项: -s [NetWorker 服务器] -D [调试级别] -h
迁移
必须具有 要迁移的内容:组 | schedule_clone | nas_device | vmware_policy
其他选项: -s [NetWorker 服务器] -D [调试级别] -h
帮助
命令行示例:
列出数据区
nsrpolicy policy list
nsrpolicy policy policy list
中的策略 显示作的属性:
nsrpolicy action display -p [策略] -w [工作流] -A [作]
nsrpolicy action display -p Mona -w Mona_wf -A backup
显示组的属性:
nsrpolicy group display -g [组]
nsrpolicy group display -g Felix
禁用作:
nsrpolicy action update [action type backup subtype] -p [policy] -w [workflow] -A [action] -e no
nsrpolicy action update backup traditional -p FrankHoenikker-w FrankH -A backup -e no
要更改与作关联的计划,请执行以下作:
nsrpolicy action update [action type backup subtype] -p [policy] -w [workflow] -A [action] -t [schedule]
nsrpolicy action update backup traditional -p Mona -w Mona_wf -A backup -t full,incr,incr,incr,incr,incr,incr
使用输入文件将客户端添加到组(客户端实例必须已存在):
使用以下文本创建输入文件:group update client -g [group] --add_clnt_list [client]:[saveset]
cat AddAlicetoTheHook.input
group update client -g TheHook --add_clnt_list vm-lego-231:/alice
nsrpolicy input-file -f “[path to input file]”
nsrpolicy input-file -f “/nsr/AddAlicetoTheHook.input”
Create a new workflow with non-default values for comment, start-time and group:
nsrpolicy workflow create -p [policy] -w [workflow] -c [comment] -g [group] -S [start time]
nsrpolicy workflow create -p Mona -w Papa -c “Workflow for RedHat 6 clients” -g PapaMgroup -S “10:00”
使用目标池的非默认值和成功阈值
创建新作 nsrpolicy action create [action type backup subtype] -p [policy] -w [workflow] -A [action] -o [target pool] -u [success threshold]
nsrpolicy action create backup traditional -p Mona -w Papa -A papabackup -o SanLorenzoDDPool -u success
启动工作流(请注意,您不能以这种方式启动作。 您必须启动整个工作流)。
nsrpolicy start -p [策略] -w [工作流]
nsrpolicy start -p Mona -w Mona_wf
停止工作流(您可以使用“nsrpolicy monitor”命令获取相关的作业 ID — 请参见下文):
nsrpolicy stop -j [jobid]
nsrpolicy stop -j 320819
在工作流中启动一个客户端:
nsrpolicy start -p [policy] -w [workflow] -c “[client]:[saveset]
nsrpolicy start -p Mona -w Mona_wf -c “vm-wego-231:/felix”
监视策略中工作流的最新运行:
nsrpolicy monitor -p [policy] -dn
nsrpolicy monitor -p Mona -dn
特定近期作业的详细作业输出:
nsrpolicy monitor -j [作业 ID]
nsrpolicy monitor -j 290473
要在调试模式下启动工作流,nsrpolicy 不如 nsrworkflow 命令有效,因为“nsrpolicy start”不会将调试输出记录到 /nsr/logs/policy 文件夹,而 nsrworkflow 将记录到原始文件。
nsrworkflow -p [policy] -w [workflow] -A “[action]”
nsrworkflow -D9 -p newt -w newt1 -A “backup”
您要进行调试的位置取决于您需要更详细地查看的备份过程的确切部分。 上面的 nsrworkflow 命令会将 NetWorker 服务器端 savegrp作放在 D9 中,并将调试数据输出到 /nsr/logs/policy 中的原始文件。 但是,它不会将调试标记传递给 NetWorker-客户端保存进程。 为此,您需要修改客户端的“backup command”字段。 为此,您可以使用 NMC 或从命令行:
这将导致保存进程在调试模式下运行(在以下示例中为 D3),并将调试日志数据输出到 /nsr/logs/policy/[policy name]/[workflow name]/_logs 文件夹。
NWserver121:> nsradmin
NetWorker 管理程序。
使用“help”命令获取帮助,使用“visual”获取全屏模式帮助。
nsradmin> 。键入:NSR 客户端;名称:vm-lego-231
当前查询集
nsradmin> 更新备份命令:save -D3
备份命令:save -D3;
更新?y
updated resource id 48.0.46.11.0.0.0.0.231.177.13.90.10.60.28.121(13)
backup command: save -D3;
更新?y
updated resource id 45.0.185.125.0.0.0.0.126.197.192.89.10.60.28.121(34)
backup command: save -D3;
更新?y
updated resource id 47.0.28.24.0.0.0.0.123.60.218.88.10.60.28.121(39)
backup command: save -D3;
更新?y
updated resource id 64.0.28.24.0.0.0.0.123.60.218.88.10.60.28.121(35)
backup command: save -D3;
更新?y
updated resource id 57.0.46.11.0.0.0.0.231.177.13.90.10.60.28.121(8)
backup command: save -D3;
更新?Y
更新的资源 ID 49.0.62.11.0.0.0.0.118.31.239.89.10.60.28.121(5)
/nsr/logs/policy/Zinka/zinka_wf/zinka_backup_357042_logs
脚本示例:
这些脚本作为可以使用此命令编写脚本的示例提供。 未经全面测试,不得在生产环境中实施。
LINUX:
示例 1: 列出所有策略及其工作流
此 shell 脚本遍历 NetWorker 配置中的策略列表,并针对每个策略运行命令“nsrpolicy workflow list”,以便输出每个策略的工作流名称列表。
cat listofworkflows.sh
#!/usr/bin/sh
IFS=$'\n'fullpolicylist
=('nsrpolicy policy list')
for lp in “${fullpolicylist[@]}”
do
echo “ ”
echo “POLICY:$lp“
echo ”Workflows“
nsrpolicy workflow list -p ”$lp“
done
示例 2: 列出所有策略及其工作流和作以及目标池
此 shell 脚本运行三个循环以获取策略、工作流和作的列表。 将输出每个节点的名称以及作的目标存储节点参数。
cat listofworkflows_actions.sh
#!/usr/bin/sh
IFS=$'\n'fullpolicylist
=('nsrpolicy policy list')
for lp in “${fullpolicylist[@]}”
do
echo “------------------ ”
echo “POLICY:$lp“
wflist=('nsrpolicy workflow list -p $lp')
for w in ”${wflist[@]}“
do
echo ”
“ echo ”WORKFLOW:$w“
alist=('nsrpolicy action list -p $lp -w $w')
for a in ”${alist[@]}“
do
echo ”ACTION:$a“
destpool='nsrpolicy action display -p $lp -w $w -A $a | grep DestinationPool | cut -d ”:”-f2'
echo “Destination Pool:$destpool“
done
done
done
示例 3 仅当
存在特定目录时运行备份 此 shell 脚本检查名为 /k7app 的目录是否存在。 如果是这样,它将启动名为 newt1 的工作流,并在专用日志文件中记录它执行此作。 如果目录不存在,则不会运行备份,备份将记录在同一日志文件中。 对于您希望仅在满足特定条件时运行工作流的任何情况,可以使用相同的脚本结构。
#!/usr/bin/sh
IFS=$'\n'dir
=“/k7app”
log=“/nsr/logs/k7applog.log”
DATE='date'if
[ -d “$dir” ]
then
nsrpolicy start -p Newt -w newt1
printf $DATE >> $log
printf “ $dir存在,因此启动 newt1 工作流 \n” >> $log
否则
printf $DATE >> $log
printf “ $dir不存在,因此不启动 newt1 工作流 \n”>>$log fi
WINDOWS POWERSHELL:
示例 1:工作流
列表通过遍历策略列表并为每个策略运行“nsrpolicy workflow list”命令,列出策略及其工作流。
$listp = nsrpolicy policy list
foreach ($i in $listp)
{
write-host “-----”
write-host “POLICY:$i“
write-host”工作流:“
nsrpolicy workflow list -p ”$i“
}
示例 2: 作
列表创建了三个循环。 用于列出策略的循环,然后用于列出每个策略的所有工作流的循环,然后列出每个工作流的所有作的循环。
$listp = nsrpolicy policy list
foreach ($p in $listp)
{
write-host “-----”
write-host “POLICY:$p“
write-host”工作流:“
$wlist = nsrpolicy workflow list -p $p
foreach ($w in $wlist)
{
write-host ”$w“
write-host ”ACTIONS:”
$alist = nsrpolicy action list -p “$p” -w “$w”
foreach ($a in $alist)
{
write-host “$a”
}
}
}示例
3 仅当特定目录存在
时运行备份 此脚本检查名为 C:\basicdata 的目录是否存在。 如果是这样,它将启动名为 Star 的工作流,并在专用日志文件中记录它执行此作。 如果目录不存在,则不会运行备份,备份将记录在同一日志文件中。 对于您希望仅在满足特定条件时运行工作流的任何情况,可以使用相同的脚本结构。
$dir = “C:\basicdata”
$log = “C:\Program Files\EMC NetWorker\nsr\logs\star.log”
$LogTime = Get-Date -Format “MM-dd-yyyy_hh-mm-ss”
if (Test-Path “$dir”)
{ nsrpolicy start -p Star -w Workflow1
“------------------” |Out-File $log -Append -Force
$LogTime |Out-File $log -Append -Force
“Started Star” |Out-File $log -Append -Force
}
else
{
“------------------” |Out-File $log -Append -Force
$LogTime |Out-File $log -Append -Force
“Star not started because $dir does not exist” |Out-File $log -Append -Force
}