今天在处理vdp遗留问题,有些机器下线了还在备份,有些机器改名了已经备份不了等等问题,想要将vdp里面的备份任务以及任务情况导出来,终于找到了mccli这个软件,能将vdp的相关信息查找出来
具体参考:
mccli使用文档:
Dell EMC Avamar Management Console Command Line Interface (MCCLI) Guide (delltechnologies.com)
有大佬写了脚本:
shellscripts/backup-job-detail.sh at master · happycow92/shellscripts · GitHub
不过内容不是我想要的,于是改了一些,拿到自己想要的信息
#!/bin/bash source /etc/profile clear printf 'job_name vm_name status error_code last_start_time last_end_time Elapsed bytes retention date ' IFS=$' ' vcenter_name=$(cat /usr/local/vdr/etc/vcenterinfo.cfg | grep vcenter-hostname | cut -d '=' -f 2) job_name=$(mccli group show --recursive=true | grep -i "/$vcenter_name/VirtualMachines" | awk -F/. '{print $(NF-2)}') date=$(date "+%F" -d "-1days") for i in $job_name do info="" stat="" start_time="" end_time="" elapsed="" er_code="" retention="" bytes="" clients=$(mccli group show-members --name=/$vcenter_name/VirtualMachines/$i | grep -Po '.*/K.*' | awk 'NF{NF-=2};1') retention=$(mccli retention show --name=/$vcenter_name/VirtualMachines/$i|grep Basic|awk '{print $(NF-1)"_"$NF}') for client_name in $clients do if [ ! -z "$client_name" ];then info=$(mccli activity show --completed=true --name=/$vcenter_name/VirtualMachines/$client_name|grep -v '^$'|tail -n +4|sort -rk 1|head -n 1) if [ -z "$info" ];then printf "%-31s %-47s %-31s %-15s %-23s %-23s %-15s %-15s %-15s " "$i" "$client_name" "$stat" "$er_code" "$start_time" "$end_time" "$elapsed" "$bytes" "$retention" continue fi stat=$(echo $info|awk -F'%' '{print $1}'|awk '{for (i=2;i<=(NF-13);i++) print $i}'|paste -d "_" -s) start_time=$(echo $info|awk -F'%' '{print $1}'|awk '{print $(NF-11)"_"$(NF-10)}') elapsed=$(echo $info|awk -F'%' '{print $1}'|awk '{print $(NF-8)}') end_time=$(echo $info|awk -F'%' '{print $1}'|awk '{print $(NF-7)"_"$(NF-6)}') er_code=$(echo $info|awk -F'%' '{print $1}'|awk '{print $(NF-12)}') bytes=$(echo $info|awk -F'%' '{print $1}'|awk '{print $(NF-2)"_"$(NF-1)}') fi printf "%-31s %-47s %-31s %-15s %-23s %-23s %-15s %-15s %-15s %-15s " "$i" "$client_name" "$stat" "$er_code" "$start_time" "$end_time" "$elapsed" "$bytes" "$retention" "$date" done done
输出内容如下:
job_name为vdp备份的任务名,vm_name为实际备份的虚拟机名,status为最近一次备份的状态,error_code为错误代码,last_time为最近一次备份完成的时间,retention为备份保留的天数