NetWorker:如何使用 nsrpolicy 命令
摘要: 本文提供使用 NetWorker nsrpolicy 命令執行 NetWorker 管理工作的相關資訊。
說明
可使用 nsrpolicy command 是用於管理和監控 NetWorker 原則的系統管理 NetWorker 命令。許多相同的功能是從 NetWorker Management (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 除錯僅會偵錯 NetWorker 伺服器端訊息。在執行備份的用戶端/系統上執行的作業中,不會新增偵錯。
啟用範例 save -D3 在 NetWorker 用戶端上使用 nsradmin 命令列公用程式進行備份:
[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
策略
建立 | 刪除 | 顯示 | 更新 | 列出
工作流程
建立 | 刪除 | 顯示 | 更新 | 列出
動作
建立 | 刪除 | 顯示 | 更新 | 列出
群組
建立 | 刪除 | 顯示 | 更新
開始
必須具備:-p [策略] -w [工作流]
其他選項 (-c 選項的 NetWorker 9.2 及更新版本): -c { <client_name1:[save_set_path_1;save_set_path_2],client_name2...> -s [NetWorker 伺服器] -D [調試層級] -h
停止
必須具備: 使用 -j [jobid] 或 -p [policy] -w [工作流程]
其他選項: -s [NetWorker 伺服器] -D [調試層級] -h
班長
必須具備: -p [政策]
其他選項: -w [工作流程] -c [用戶端] -g [群組] -d [詳細資訊] -n [非表格] -j [jobid] -s [NetWorker 伺服器] -D [調試級別] -h
輸入檔案
必須具備: -f [檔名]
其他選項: [--stop_on_error -S <0/1;預設值:0 (不停止)>] [--stop_on_error -S <0/1;預設值:0 (不停止)>] -D [調試級別] -h
重新啟動
必須具有: 使用 -j [jobid] 或 -p [policy] -w [工作流程]
其他選項: -s [NetWorker 伺服器] -D [調試層級] -h
徙
必須具備要遷移的項目: 群組 | schedule_clone | nas_device | vmware_policy
其他選項: -s [NetWorker 伺服器] -D [調試層級] -h
助
命令列範例:
列出資料區
中的原則 nsrpolicy policy list
nsrpolicy policy list
顯示動作的屬性:
nsrpolicy 動作顯示 -p [原則] -w [工作流程] -A [動作]
nsrpolicy 動作顯示 -p Mona -w Mona_wf -A 備份
顯示群組的屬性:
nsrpolicy group display -g [group]
nsrpolicy group display -g Felix
停用動作:
nsrpolicy 動作更新 [動作類型備份子類型] -p [原則] -w [工作流程] -A [動作] -e 否
nsrpolicy action update backup 傳統 -p FrankHoenikker -w FrankH -A backup -e no
要更改與操作關聯的計劃,請執行以下操作:
nsrpolicy 動作更新 [動作類型備份子類型] -p [原則] -w [工作流程] -A [動作] -t [排程]
nsrpolicy 動作 更新備份傳統 -p Mona -w Mona_wf -A backup -t full,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”
使用非預設值的註解、開始時間和群組建立新的工作流程:
nsrpolicy 工作流程建立 -p [原則] -w [工作流程] -C [註解] -g [群組] -S [開始時間]
nsrpolicy workflow create -p Mona -w Papa -c “RedHat 6 用戶端的工作流程” -g PapaMgroup -S “10:00”
為目標池和成功閾值創建具有非預設值的新操作 nsrpolicy 操作創建 [操作類型備份子類型] -p [策略] -w [工作流] -A [操作] -o [目標池] -u [成功閾值]
nsrpolicy 操作創建備份傳統 -p Mona -w Papa -A papa -o SanLorenzoDDPool -u 成功
啟動工作流 (請注意,不能以這種方式啟動操作。
您必須啟動整個工作流)。
nsrpolicy start -p [policy] -w [workflow]
nsrpolicy start -p Mona -w Mona_wf
停止工作流程 (您可以使用「nsrpolicy monitor」comand 取得相關的 jobid - 見下方):
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 [job id]
nsrpolicy monitor -j 290473
若要在偵錯模式下啟動工作流程,nsrpolicy 的效用不如 nsrworkflow 命令,因為「nsrpolicy start」不會將偵錯輸出記錄到 nsr/logs/policy 資料夾,nsrworkflow 會記錄到原始檔案的 /nsr/logs/policy 資料夾。
nsrworkflow -p [policy] -w [workflow] -a “[action]”
nsrworkflow -D9 -p newt -w newt1 -A “備份”
您要將調試的位置取決於您需要更詳細地查看備份過程的確切部分。 上述 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
更新了資源 ID 48.0.46.11.0.0.0.0.231.177.13.90.10.60.28.121(13)
備份命令:保存-D3;
更新?Y
更新了資源 ID 45.0.185.125.0.0.0.0.126.197.192.89.10.60.28.121(34)
備份命令:保存 -D3;
更新?Y
更新了資源 ID 47.0.28.24.0.0.0.0.123.60.218.88.10.60.28.121(39)
備份命令:保存-D3;
更新?Y
更新了資源 ID 64.0.28.24.0.0.0.0.123.60.218.88.10.60.28.121(35)
備份命令:保存 -D3;
更新?Y
更新了資源 ID 57.0.46.11.0.0.0.0.231.177.13.90.10.60.28.121(8)
備份命令:保存 -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“
完成
完成 範例 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
($i in $listp)
{
write-host “-----”
write-host “POLICY:$i寫入
主機「工作流程:「
nsrpolicy workflow list -p “$i”
}
範例 2: 操作
清單 將創建三個迴圈。 一個用於列出策略的迴圈,然後一個迴圈用於列出每個策略的所有工作流,然後是一個迴圈以列出每個工作流的所有操作。
$listp = 每個的 nsrpolicy policy list
($p in $listp)
{
write-host “-----”
write-host “POLICY:$p寫入
主機「工作流程:“
$wlist = nsrpolicy workflow list -p $p
foreach ($wlist 中的 $w)
{
write-host ”$w“
write-host ”ACTIONS:”
$alist = nsrpolicy action list -p “$p” -w “$w”
foreach ($alist 中的 $a)
{
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
“------------------” |文件輸出$log -附加 -強制
$LogTime |文件輸出$log -附加 -強制
“啟動之星” |文件輸出$log -追加 -強制
}
else
{
“------------------” |文件輸出$log -附加 -強制
$LogTime |檔外$log -附加 -強制
“星號未啟動,因為$dir不存在” |輸出檔案$log -append -force
}