-
Notifications
You must be signed in to change notification settings - Fork 0
/
regional_disks_status
122 lines (93 loc) · 2.71 KB
/
regional_disks_status
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/bin/bash
#
# v 0.0.6
#
#set -x
readonly Err="***Error***:"
#readonly ImagesFile=/tmp/$(basename $0)_images_$$.tmp
readonly DirLog="/usr/openv/netbackup/logs/user_ops"
readonly ImageData="/tmp/$(basename $0)_image_$$.tmp"
readonly cBeforeImport=0
readonly cAfterImport1=1
readonly cAfterImport2=2
readonly cAfterDupl=3
readonly cAfterDiskDel=4
Copy=0
Retn=0
function check_dir() {
# $Dir
if [[ ! -d /$1 ]]; then
echo "$Err Directory /$1 don't exists !"
exit 10
fi
}
function get_image_data() {
# $Image $ImageData
/usr/openv/netbackup/bin/admincmd/bpimagelist -backupid $1 -option INCLUDE_PRE_IMPORT -l > $2 2>&1
# /usr/openv/netbackup/bin/admincmd/bpimagelist -backupid $1 -l > $2 2>&1
}
readonly ImMediaData="/tmp/$(basename $0)_immedia_$$.tmp"
function check_bpimmedia() {
# $ImageDir $Image
local ImgDir=$1
local Img=$2
/usr/openv/netbackup/bin/admincmd/bpimmedia -dt 1 -mediaid $ImgDir -l -option ONLY_PRE_IMPORT > $ImMediaData 2>&1
local N=$(grep -c "$Img" $ImMediaData)
if [ $N -gt 0 ]; then
echo "1"
else
echo "0"
fi
}
readonly cMediaTypeDisk=0
readonly cMediaTypeTape=2
function get_image_status() {
# $Image
# local Status=0
get_image_data $1 $ImageData
local N=$(grep -c 'no entity was found' $ImageData)
if [ $N -gt 0 ]; then
# local Nimm=$(check_bpimmedia $ImageDir $Image)
return 0
fi
N=$(grep "^IMAGE" $ImageData | awk '{print $29}')
[[ $N -eq 1 ]] && return 1
local NCopies=$(grep '^IMAGE' $ImageData | awk '{print $21}')
if [ $NCopies -eq 0 ]; then # ???
return 1
elif [ $NCopies -eq 1 ]; then
local MediaType=$(grep '^FRAG' $ImageData | awk '{if ($3==1) print $6}')
if [ $MediaType -eq $cMediaTypeDisk ]; then
Retn=$(grep '^IMAGE' $ImageData | awk '{print $13}')
Copy=$(grep '^FRAG' $ImageData | awk '{if ($3==1) print $2}')
return 2
else # $MediaType -eq $cMediaTypeTape
return 4
fi
fi
return 3 # $NCopies -eq 2
}
for Dir in adisk bdisk cdisk
do
check_dir $Dir
ImagesFile="$(basename $0)_$Dir.out"
StatusFile="$(basename $0)_${Dir}_status.txt"
# find /$Dir -name "*.img*" -print | awk -F_ '{if ($4=="F1" || $4~/^F1\./) print $1"_"$2}' | awk -F/ '{print $NF}' > $ImagesFile
find /$Dir -name "*.img" -print | awk -F_ '{if ($4=="F1" || $4~/^F1\./) print $1"_"$2}' > $ImagesFile
[[ -f $StatusFile ]] && rm $StatusFile
while read ImageRecord
do
Image=$(echo $ImageRecord | xargs basename)
ImageDir=$(echo $ImageRecord | xargs dirname)
# checking info files existence
Ninfo=$(ls -l $ImageRecord*.info | grep -c "$Image")
if [[ $Ninfo -eq 0 ]]; then
echo "$Err info files are absent for $ImageDir/$Image !"
continue
fi
get_image_status $Image
ImageStatus=$?
echo "$ImageStatus $Image" >> $StatusFile
done < $ImagesFile
done
exit 0