The name of a script file for post-processing of a backup is as follows.
/etc/opt/FJSVswsts/sh/OpcBackup.post
/etc/opt/FJSVswsts/<logic node name>/sh/OpcBackup.post
1: #!/bin/sh 2: 3: # AdvancedCopy Manager 4: # Copyright FUJITSU LIMITED, 2002-2012 5: 6: # 7: # Postprocessing of backup processing 8: # 9: # Argument: $1 Device name of transaction disk 10: # $2 Mount point of transaction disk 11: # 12: # Error number 13: # 2: Argument error 14: # 11: mount error 15: # 12: fsck error 16: 17: # Argument check 18: case $# in 19: 1) 20: ;; 21: 2) 22: ;; 23: *) 24: exit 2 25: ;; 26: esac 27: 28: device="`echo $1`" 29: mount_point="`echo $2`" 30: 31: # Determination of postprocessing file name 32: 33: if [ "$SWSTGNODE" != "" ] 34: then 35: swstg_node="/`echo $SWSTGNODE`" 36: else 37: swstg_node="" 38: fi 39: 40: err_log_path="/var/opt/FJSVswsts"$swstg_node"/log" 41: 42: if [ "`echo $device | /bin/grep "/dev/sd"`" != "" ] 43: then 44: # /dev/sd? -> sd? 45: dev="`echo $device | /bin/sed "s/\/dev\///"`" 46: elif [ "`echo $device | /bin/grep "/dev/vd"`" != "" ] 47: then 48: # /dev/vd? -> vd? 49: dev="`echo $device | /bin/sed "s/\/dev\///"`" 50: elif [ "`echo $device | /bin/grep "/dev/FJSV"`" != "" ] 51: then 52: # /dev/FJSVmphd/dsk/mplb?s? -> mplb?s? 53: # /dev/FJSVmphd/dsk/mphd?s? -> mphd?s? 54: dev="`echo $device | /bin/cut -d/ -f5`" 55: elif [ "`echo $device | /bin/grep "/dev/sfdsk/"`" != "" ] 56: then 57: if [ "`echo $device | /bin/grep ":"`" != "" ] 58: then 59: devnam="`echo $device | /bin/cut -d: -f2-`" 60: # /dev/sfdsk/class/dsk/volume:sd? -> class_volume_sd? 61: dev="`echo $device | /bin/sed "s/\/dev\/sfdsk\///"`" 62: dev="`echo $dev | /bin/sed "s/\/dsk\//_/"`" 63: dev="`echo $dev | /bin/sed "s/:/_/"`" 64: device="`echo $device | /bin/cut -d: -f1`" 65: if [ "`echo $devnam | /bin/grep "/dev/disk/by-id/"`" != "" ] 66: then 67: # /dev/sfdsk/class/dsk/volume:/dev/disk/by-id/<device> -> class_volume__by_id_<device> 68: dev="`echo $dev | /bin/sed "s/\/dev\/disk\/by-id\//_by-id_/"`" 69: elif [ "`echo $devnam | /bin/grep "/dev/disk/by-path/"`" != "" ] 70: then 71: # /dev/sfdsk/class/dsk/volume:/dev/disk/by-path/<device> -> class_volume__by_path_<device> 72: dev="`echo $dev | /bin/sed "s/\/dev\/disk\/by-path\//_by-path_/"`" 73: fi 74: else 75: # /dev/sfdsk/class/dsk/volume -> _gds_class_volume 76: dev="_gds_`echo $device | /bin/sed "s/\/dev\/sfdsk\///"`" 77: dev="`echo $dev | /bin/sed "s/\/dsk\//_/"`" 78: fi 79: elif [ "`echo $device | /bin/grep "/dev/vx/dmp/"`" != "" ] 80: then 81: # /dev/vx/dmp/device -> _vx_pv_device 82: dev="_vx_pv_`echo $device | /bin/sed "s/\/dev\/vx\/dmp\///"`" 83: elif [ "`echo $device | /bin/grep "/dev/mapper/"`" != "" ] 84: then 85: # "/dev/mapper/<device>" -> "_mapper_<device>" 86: dev="_mapper_`echo $device | /bin/sed "s/\/dev\/mapper\///"`" 87: elif [ "`echo $device | /bin/grep "/dev/disk/by-id/"`" != "" ] 88: then 89: # "/dev/disk/by-id/<device>" -> "_by-id_<device>" 90: dev="_by-id_`echo $device | /bin/sed "s/\/dev\/disk\/by-id\///"`" 91: elif [ "`echo $device | /bin/grep "/dev/disk/by-path/"`" != "" ] 92: then 93: # "/dev/disk/by-path/<device>" -> "_by-path_<device>" 94: dev="_by-path_`echo $device | /bin/sed "s/\/dev\/disk\/by-path\///"`" 95: else 96: exit 0 97: fi 98: post_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".pre" 99: fstype_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".fstype" 100: bd_file="/etc/opt/FJSVswsts"$swstg_node"/data/DEFAULT/"$dev".bd" 101: 102: # Confirmation of postprocessing 103: if [ ! -r $post_file ] 104: then 105: exit 0 106: fi 107: post="`/bin/cat $post_file`" 108: 109: # Confirmation of FStype 110: if [ ! -r $fstype_file ] 111: then 112: fs="" 113: else 114: fs="`/bin/cat $fstype_file`" 115: fi 116: 117: # No processing 118: if [ "$post" = "none" ] 119: then 120: /bin/rm -rf $post_file 2> /dev/null 121: /bin/rm -rf $fstype_file 2> /dev/null 122: exit 0 123: fi 124: 125: # mount processing 126: if [ "$post" = "mount" ] 127: then 128: if [ "`echo $device | /bin/grep "/dev/disk/by-id/"`" != "" \ 129: -o "`echo $device | /bin/grep "/dev/disk/by-path/"`" != "" ] 130: then 131: cdevice="/dev/`/usr/bin/readlink $device | /bin/sed "s/..\/..\///"`" 132: Result="`/bin/df -l | /bin/grep "$cdevice " | /bin/awk 'END {print NR}'`" 133: else 134: Result="`/bin/df -l | /bin/grep "$device " | /bin/awk 'END {print NR}'`" 135: fi 136: if [ "$Result" != "1" ] 137: then 138: if [ ! -r $fstype_file ] 139: then 140: /bin/mount $device $mount_point 2> /dev/null 141: else 142: Result1="`echo $fs | /bin/awk 'END {print NR}'`" 143: if [ "$Result1" != "1" ] 144: then 145: /bin/mount $device $mount_point 2> /dev/null 146: else 147: /bin/mount -t $fs $device $mount_point 2> /dev/null 148: fi 149: fi 150: if [ $? != 0 ] 151: then 152: retry_count=3 153: sleep_time=1 154: result_flag=1 155: 156: while [ $retry_count -gt 0 ] 157: do 158: if [ ! -r $fstype_file ] 159: then 160: /bin/mount $device $mount_point > $err_log_path/$dev.mount 2>&1 161: else 162: Result1="`echo $fs | /bin/awk 'END {print NR}'`" 163: if [ "$Result1" != "1" ] 164: then 165: /bin/mount $device $mount_point > $err_log_path/$dev.mount 2>&1 166: else 167: /bin/mount -t $fs $device $mount_point > $err_log_path/$dev.mount 2>&1 168: fi 169: fi 170: if [ $? != 0 ] 171: then 172: retry_count=`expr $retry_count - 1` 173: /bin/sleep $sleep_time 174: else 175: /bin/rm -f $err_log_path/$dev.mount 176: result_flag=0 177: break 178: fi 179: done 180: 181: if [ $result_flag != 0 ] 182: then 183: exit 11 184: fi 185: fi 186: fi 187: /bin/rm -rf $post_file 2> /dev/null 188: /bin/rm -rf $fstype_file 2> /dev/null 189: exit 0 190: fi 191: 192: # fsck processing 193: if [ "$post" = "fsck" ] 194: then 195: if [ -r $bd_file ] 196: then 197: bk_device="`/bin/cat $bd_file`" 198: fsck_dev="`echo $bk_device `" 199: if [ ! -r $fstype_file ] 200: then 201: /sbin/fsck -c $fsck_dev > /dev/null 2>&1 202: else 203: if [ "$fs" = "" ] 204: then 205: /sbin/fsck -c $fsck_dev > /dev/null 2>&1 206: else 207: if [ "$fs" = "sfxfs" ] 208: then 209: /sbin/sfxadm $fsck_dev > /dev/null 2>&1 210: /sbin/fsck -p -t $fs $fsck_dev > /dev/null 2>&1 211: else 212: /sbin/fsck -p -t $fs $fsck_dev > /dev/null 2>&1 213: fi 214: fi 215: fi 216: if [ $? != 0 ] 217: then 218: if [ "$fs" = "" ] 219: then 220: result="`/sbin/fsck -p $fsck_dev `" 221: else 222: result="`/sbin/fsck -p -t $fs $fsck_dev `" 223: fi 224: fsck_rc=$? 225: if [ $fsck_rc != 0 ] && [ $fsck_rc != 1 ] 226: then 227: echo "$result" > $err_log_path/$dev.fsck 228: exit 12 229: fi 230: fi 231: fi 232: /bin/rm -rf $post_file 2> /dev/null 233: /bin/rm -rf $fstype_file 2> /dev/null 234: /bin/rm -rf $bd_file 2> /dev/null 235: exit 0 236: fi 237: 238: exit 0