テープコピー実行時の前処理のスクリプトファイル名は、以下のとおりです。
非クラスタ運用の場合
“環境設定ディレクトリ”¥etc¥backup¥scripts¥TapeCopyPre.js
クラスタ運用の場合
<共有ディスク>:¥etc¥opt¥swstorage¥etc¥backup¥scripts¥TapeCopyPre.js
スクリプトファイルの内容は、以下のとおりです。
1 // AdvancedCopy Manager for Windows 2 // All Rights Reserved, Copyright FUJITSU LIMITED, 2005-2006 3 // 4 // TapeCopyPre.js: Pre-Processing Script for tape copy 5 // 6 // [Parameters] 7 // 1st argument: device name of backup volume 8 // 9 // [Return Values] 10 // 0: The script ended normally. 11 // 2: The number of the arguments is incorrect. 12 // 4: An error other than the above occurred. 13 14 try { 15 // create global objects 16 var WshShell = WScript.CreateObject("WScript.Shell"); // create Shell object 17 var WshEnv = WshShell.Environment("PROCESS"); // create Environment object 18 var fsObj = WScript.CreateObject("Scripting.FileSystemObject"); // create FileSystemObject object 19 20 // create SwstTapeCopyPreProc object 21 var proc = new SwstTapeCopyPreProc(); 22 23 // there is nothing to do if the pre/post-processing is not customized 24 proc.doNothingForDriveLetter(); 25 26 SwstQuit(0); 27 } catch (e) { 28 SwstQuit(4); 29 } 30 31 function SwstTapeCopyPreProc() 32 { 33 // member variables 34 this.bvName = WScript.Arguments.length!=1?SwstQuit(1):WScript.Arguments.Item(0); // device name of transaction volume 35 this.postFileName = getDataPathName() + "¥¥" + getPutFileName(this.bvName) + ".pre"; // name of postprocessing file 36 37 // member functions 38 this.doNothingForDriveLetter = doNothingForDriveLetter; // self-explanatory 39 this.writePostFile = writePostFile; // self-explanatory 40 } 41 42 function doNothingForDriveLetter() 43 { 44 this.writePostFile(this.postFileName, "none"); 45 } 46 47 function writePostFile(postfile, postdata) 48 { 49 var overwrite = true; // means to overwrite a file if it exists. 50 var postFileStream = fsObj.CreateTextFile(postfile, overwrite); 51 postFileStream.Write(postdata); 52 postFileStream.Close(); 53 } 54 55 function SwstQuit(exitStatus) 56 { 57 switch(exitStatus) { 58 case 0: 59 WScript.Quit(0); 60 case 1: 61 WScript.Echo("[Tape copy Preprocessing] The number of the arguments is incorrect."); 62 WScript.Quit(2); 63 default: 64 WScript.Echo("[Tape copy Preprocessing] The script exited abnormally."); 65 WScript.Quit(4); 66 } 67 } 68 69 function getDataPathName() 70 { 71 return WshShell.RegRead(getSetupInfoKey() + "¥¥etcPathName") + "¥¥etc¥¥backup¥¥data¥¥DEFAULT"; 72 } 73 74 function getSetupInfoKey() 75 { 76 var nodeName = WshEnv.Item("SWSTGNODE"); 77 if( nodeName != "" ){ 78 return "HKEY_LOCAL_MACHINE¥¥SOFTWARE¥¥Fujitsu¥¥AdvancedCopy Manager¥¥CurrentVersion¥¥" + nodeName; 79 } 80 return "HKEY_LOCAL_MACHINE¥¥SOFTWARE¥¥Fujitsu¥¥AdvancedCopy Manager¥¥CurrentVersion"; 81 } 82 83 function getPutFileName(deviceName){ 84 var fileName; 85 fileName = deviceName; 86 return(fileName); 87 } 88