ETERNUS SF AdvancedCopy Manager 運用手引書 13.2 -HP-UX-
|
目次
索引

|
A.2.1 バックアップ実行時の前処理
バックアップ実行時の前処理のシェルスクリプト名は、以下のとおりです。
非クラスタ運用の場合
/etc/opt/FJSVswsts/sh/OpcBackup.pre |
クラスタ運用の場合
/etc/opt/FJSVswsts/<論理ノード名>/sh/OpcBackup.pre |
シェルスクリプトの内容は、以下のとおりです。
1: #!/bin/sh
2:
3: # AdvancedCopy Manager
4: # All Rights Reserved, Copyright FUJITSU LIMITED, 2002-2007
5:
6: #
7: # Preprocessing of backup processing
8: #
9: # Argument: $1 Device or VG name of transaction disk
10: # $2 Mount point of transaction disk
11: # $3 Device or VG name of backup disk
12: #
13: # Error number
14: # 2: Argument error
15: # 10: umount error
16: # 30: VG configuration file not found error
17: # 99: Script not customize
18:
19:
20: # Argument check
21: case $# in
22: 1)
23: ;;
24: 2)
25: ;;
26: 3)
27: ;;
28: *)
29: exit 2
30: ;;
31: esac
32:
33: device=$1
34: mount_point=$2
35: bk_device=$3
36:
37: # Determination postprocessing file name
38: if [ "$SWSTGNODE" != "" ]
39: then
40: swstg_node="/`echo $SWSTGNODE`"
41: else
42: swstg_node=""
43: fi
44:
45: err_log_path="/var/opt/FJSVswsts"$swstg_node"/log"
46:
47: # Device type check
48: trans="`echo $device | /usr/bin/grep "/dev/dsk/"`"
49: lvmtrans="`echo $device | /usr/bin/grep "/dev/"`"
50: vxpvtrans="`echo $device | /usr/bin/grep "/dev/vx/dmp/"`"
51: if [ "$trans" != "" ]
52: then
53: dev_type="physical"
54: dev="`echo $device | /usr/bin/sed "s/\/dev\/dsk\///"`"
55: post_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".pre"
56: fstype_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".fstype"
57: bd_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".bd"
58: elif [ "$vxpvtrans" != "" ]
59: then
60: dev_type="vxvm_pv"
61: # /dev/vx/dmp/XXXX -> XXXX
62: dev="`echo $device | /usr/bin/awk -F\/ '{ print $5 }'`"
63: post_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".pre"
64: fstype_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".fstype"
65: bd_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".bd"
66: elif [ "$lvmtrans" != "" ]
67: then
68: dev_type="logical"
69: # /dev/XXXX -> XXXX
70: dev="`echo $device | /usr/bin/awk -F\/ '{ print $3 }'`"
71: post_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".pre"
72: fstype_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".fstype"
73: bd_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".bd"
74: else
75: exit 0
76: fi
77:
78: # Save VG name of backup disk
79: bk_trans="`echo $bk_device | /usr/bin/grep "/dev/dsk/"`"
80: bk_lvmtrans="`echo $bk_device | /usr/bin/grep "/dev/"`"
81: bk_vxpvtrans="`echo $bk_device | /usr/bin/grep "/dev/vx/dmp/"`"
82: if [ "$bk_trans" = "" -a "$bk_lvmtrans" != "" -a "$bk_vxpvtrans" = "" ]
83: then
84: bk_vg_name="`echo $bk_device | /usr/bin/awk -F\/ '{ print $3 }'`"
85: cfg_file="/etc/lvmconf/"$bk_vg_name".conf"
86: if [ ! -r $cfg_file ]
87: then
88: exit 30
89: fi
90: echo $bk_device > $bd_file
91: fi
92:
93: # When the transaction disk is a physical device #############################
94: if [ "$dev_type" = "physical" ]
95: then
96:
97: if [ "$mount_point" != "" ]
98: then
99: # When device cannot be unmounted --- 1
100: #
101: # if [ "$device" = "/dev/dsk/cXtXdX" ]
102: # then
103: # if [ "$bk_device" != "" ]
104: # then
105: # echo $bk_device > $bd_file
106: # fi
107: # df -ln $mount_point 2>/dev/null | awk -F: '{ print $2 }' | awk '{ print $1 }' > $fstype_file
108: # sync
109: # sync
110: # echo "fsck" > $post_file
111: #
112: # When device can be unmounted --- 2
113: # else
114: /usr/bin/df -ln $mount_point 2>/dev/null | /usr/bin/awk -F: '{ print $2 }' | /usr/bin/awk '{ print $1 }' > $fstype_file
115: /usr/sbin/umount $mount_point 2>/dev/null
116: if [ $? != 0 ]
117: then
118: retry_count=3
119: sleep_time=1
120: result_flag=1
121:
122: while [ $retry_count -gt 0 ]
123: do
124: /usr/sbin/umount $mount_point > $err_log_path/$dev.umount 2>&1
125: if [ $? != 0 ]
126: then
127: retry_count=`expr $retry_count - 1`
128: /usr/bin/sleep $sleep_time
129: else
130: result_flag=0
131: break
132: fi
133: done
134:
135: if [ $result_flag != 0 ]
136: then
137: /usr/sbin/fuser -cu $mount_point> $err_log_path/$dev.fuser 2>&1
138: /usr/bin/ps -ef > $err_log_path/$dev.ps 2>&1
139:
140: exit 10
141: else
142: /usr/bin/rm -f $err_log_path/$dev.umount
143: fi
144: fi
145: echo "mount" > $post_file
146: # fi
147: # When device was not mounted --- 3
148: #
149: else
150: echo "none" > $post_file
151: fi
152:
153: # When the transaction disk is a volume group ################################
154: elif [ "$dev_type" = "logical" ]
155: then
156:
157: # Devices is volume group and script not customize
158: exit 99
159:
160: # When devices of volume group cannot be unmounted --- 4
161: #
162: # # Specify the name of volume group not to unmount
163: # if [ "$device" = "/dev/vgXX" ]
164: # then
165: # if [ "$bk_device" != "" ]
166: # then
167: # echo $bk_device > $bd_file
168: # fi
169: # sync
170: # sync
171: # echo "fsck" > $post_file
172: # fi
173: #
174: # When devices of volume group can be unmounted --- 5
175: #
176: # # Specify the name of volume group to unmount
177: # if [ "$device" = "/dev/vgXX" ]
178: # then
179: # # Unmount all logical volumes of the volume group
180: # mount_point="/XX"
181: # /usr/sbin/umount $mount_point 2>/dev/null
182: # if [ $? != 0 ]
183: # then
184: # retry_count=3
185: # sleep_time=1
186: # result_flag=1
187: #
188: # while [ $retry_count -gt 0 ]
189: # do
190: #
191: # # $dev is volume group name
192: #
193: # /usr/sbin/umount $mount_point > $err_log_path/$dev.umount 2>&1
194: # if [ $? != 0 ]
195: # then
196: # retry_count=`expr $retry_count - 1`
197: # sleep $sleep_time
198: # else
199: # rm -f $err_log_path/$dev.umount
200: # result_flag=0
201: # break
202: # fi
203: # done
204: #
205: # if [ $result_flag != 0 ]
206: # then
207: # /usr/sbin/fuser -cu $mount_point> $err_log_path/$dev.fuser 2>&1
208: # /usr/bin/ps -ef > $err_log_path/$dev.ps 2>&1
209: #
210: # exit 10
211: # fi
212: # fi
213: # echo "mount" > $post_file
214: # fi
215: #
216: # When devices of volume group was not mounted --- 6
217: #
218: # # Specify the name of volume group to do nothing
219: # if [ "$device" = "/dev/vgXX" ]
220: # then
221: # echo "none" > $post_file
222: # fi
223: #
224: # When the transaction disk is a VxVM physical volume --- 7 #################
225: elif [ "$dev_type" = "vxvm_pv" ]
226: then
227: # Nothing is done to VxVM PV.
228: echo "none" > $post_file
229: fi
230:
231: exit 0 |
マウントされているがアンマウントしたくない業務ボリュームに対しては、101〜110行目、113、146行目(物理ボリュームの場合)または163〜172行目(ボリュームグループの場合)のコメント(“#”)をエディタ等で消去し、101行目または163行目のif文で対象となるデバイスを指示してください。なお、108行目または169行目のsyncコマンドを実施してからバックアップ後処理を実施するまでの間は、業務ボリュームのファイルシステム更新操作を行わないようにしてください。もし、この間にファイルシステム更新操作が行われると、ファイルシステムが不完全な状態でバックアップが採取されるか、またはバックアップ後処理で実施するfsckコマンドがエラーとなる可能性があります。
All Rights Reserved, Copyright(C) 富士通株式会社 2000-2008