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