Option Explicit
On Error Resume Next
Dim strFolderName ' フォルダ名
Dim strFileName ' ファイル名
Dim dtmModifyDate ' 更新日付
Dim objShell ' Shell オブジェクト
Dim objFolder ' フォルダ情報
Dim objFile ' ファイル情報
strFolderName = "C:\Tmp"
strFileName = "IT_HotBackup.bat"
dtmModifyDate = CDate("2014/10/21 10:34:56")
Set objShell = WScript.CreateObject("Shell.Application")
If Err.Number = 0 Then
Set objFolder = objShell.NameSpace(strFolderName)
Set objFile = objFolder.ParseName(strFileName)
objFile.ModifyDate = dtmModifyDate
If Err.Number = 0 Then
WScript.Echo strFolderName & "\" & strFileName & _
" の更新日付を " & dtmModifyDate & " に変更しました。"
Else
WScript.Echo "エラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objFile = Nothing
Set objFolder = Nothing
Set objShell = Nothing
2014年12月8日月曜日
2014年10月20日月曜日
forfiles
@echo off
:: *********************************************************************************
::
:: target file listing only
:: target file listing and delete
::
:: *********************************************************************************
CALL :volumeinfo
SET FileAction_ACTION=LIST
SET FileAction_MINUS_DAYS=-149
SET FileAction_PATH=d:\test
IF NOT "%1"=="" (
SET FileAction_ACTION=%1
)
IF NOT "%2"=="" (
SET FileAction_MINUS_DAYS=%2
)
IF NOT "%3"=="" (
SET FileAction_PATH=%3
)
ECHO %date% %time% %0 %FileAction_ACTION% %FileAction_MINUS_DAYS% %FileAction_PATH%
IF /I %FileAction_ACTION% EQU LIST GOTO MAINST
IF /I %FileAction_ACTION% EQU ROTATE GOTO MAINST
EXIT /B 1
:MAINST
CALL :FileAction %FileAction_ACTION% %FileAction_PATH% %FileAction_MINUS_DAYS%
IF NOT %ERRORLEVEL% EQU 0 GOTO MAINNG
GOTO MAINOK
:MAINNG
ECHO %date% %time% MAINNG
EXIT /B 1
pause
:MAINOK
fsutil volume diskfree d:
ECHO %date% %time% MAINOK
EXIT /B 0
:: *********************************************************************************
:: FileAction
:: target file listing only rae
:: target file listing and delete
::
:: *********************************************************************************
:FileAction
SET FORFILES_ACTION=%1
SET FORFILES_PATH=%2
SET FORFILES_MINUS_DAYS=%3
IF /I %FORFILES_ACTION% EQU LIST GOTO SEC_LIST
IF /I %FORFILES_ACTION% EQU ROTATE GOTO SEC_ROTATE
:SEC_LIST
FORFILES /P %FORFILES_PATH% /D %FORFILES_MINUS_DAYS% /C "cmd /c echo @path @fsize @fdate @ftime"
IF NOT %ERRORLEVEL% EQU 0 GOTO SEC_NG
GOTO SEC_OK
:SEC_ROTATE
ECHO "AAA"
rem FORFILES /P %FORFILES_PATH% /D %FORFILES_MINUS_DAYS% /C "cmd /c del @path | echo @path @fsize @fdate @ftime"
rem FORFILES /P %FORFILES_PATH% /D %FORFILES_MINUS_DAYS% /C "cmd /c del @path"
FORFILES /P %FORFILES_PATH% /D %FORFILES_MINUS_DAYS% /C "cmd /c echo @path @fsize @fdate @ftimede l del @path"
IF NOT %ERRORLEVEL% EQU 0 GOTO SEC_NG
GOTO SEC_OK
:SEC_NG
ECHO SEC_NG %ERRORLEVEL%
EXIT /B 1
:SEC_OK
EXIT /B 0
:: *********************************************************************************
:: volume info
:: *********************************************************************************
:volumeinfo
for /F "tokens=1,2,*" %%I in ('fsutil volume diskfree D:') do (
if %%I==利用可能な空きバイト総数 (
echo %%K
set str=%%K
echo %str%
echo www
rem set num=%str:~0,-3%
rem set /a M=1024
rem set /a int=%num% / %M%
rem set free_k=%int%
rem call :trim %%K
rem set free_k=%%K
)
if %%I==バイト総数 (
echo %%K
set str=%%K
rem echo %str%
rem set num=%str:~0,-3%
rem set /a M=1024
rem set /a int=%num% / %M%
rem set all_k=%int%
rem call :trim %%K
rem set all_k=%%K
)
)
echo %free_k% %all_k%
:: *********************************************************************************
:: triming MB
:: *********************************************************************************
:trim
set str=%~1
set num=%str:~0,-3%
set /a M=1024
set /a int=%num% / %M%
set MB=%int%
echo %MB%MB
exit /b 0
rem *********************************************************************************
rem event log out
rem Input
rem Level
rem Description
rem *********************************************************************************
:SetEVNTLOG
SET event_Level=%1
SET event_ID=%2
SET event_Description=%3
SET event_Source="Acronis"
SET event_LogName=APPLICATION
EVENTCREATE /T %event_Level% /ID %event_ID% /D %event_Description% /SO %event_Source% /L %event_LogName%
IF %ERRORLEVEL% EQU 0 GOTO LOGEND
echo %ERRORLEVEL%
:LOGEND
EXIT /B
:: *********************************************************************************
::
:: target file listing only
:: target file listing and delete
::
:: *********************************************************************************
CALL :volumeinfo
SET FileAction_ACTION=LIST
SET FileAction_MINUS_DAYS=-149
SET FileAction_PATH=d:\test
IF NOT "%1"=="" (
SET FileAction_ACTION=%1
)
IF NOT "%2"=="" (
SET FileAction_MINUS_DAYS=%2
)
IF NOT "%3"=="" (
SET FileAction_PATH=%3
)
ECHO %date% %time% %0 %FileAction_ACTION% %FileAction_MINUS_DAYS% %FileAction_PATH%
IF /I %FileAction_ACTION% EQU LIST GOTO MAINST
IF /I %FileAction_ACTION% EQU ROTATE GOTO MAINST
EXIT /B 1
:MAINST
CALL :FileAction %FileAction_ACTION% %FileAction_PATH% %FileAction_MINUS_DAYS%
IF NOT %ERRORLEVEL% EQU 0 GOTO MAINNG
GOTO MAINOK
:MAINNG
ECHO %date% %time% MAINNG
EXIT /B 1
pause
:MAINOK
fsutil volume diskfree d:
ECHO %date% %time% MAINOK
EXIT /B 0
:: *********************************************************************************
:: FileAction
:: target file listing only rae
:: target file listing and delete
::
:: *********************************************************************************
:FileAction
SET FORFILES_ACTION=%1
SET FORFILES_PATH=%2
SET FORFILES_MINUS_DAYS=%3
IF /I %FORFILES_ACTION% EQU LIST GOTO SEC_LIST
IF /I %FORFILES_ACTION% EQU ROTATE GOTO SEC_ROTATE
:SEC_LIST
FORFILES /P %FORFILES_PATH% /D %FORFILES_MINUS_DAYS% /C "cmd /c echo @path @fsize @fdate @ftime"
IF NOT %ERRORLEVEL% EQU 0 GOTO SEC_NG
GOTO SEC_OK
:SEC_ROTATE
ECHO "AAA"
rem FORFILES /P %FORFILES_PATH% /D %FORFILES_MINUS_DAYS% /C "cmd /c del @path | echo @path @fsize @fdate @ftime"
rem FORFILES /P %FORFILES_PATH% /D %FORFILES_MINUS_DAYS% /C "cmd /c del @path"
FORFILES /P %FORFILES_PATH% /D %FORFILES_MINUS_DAYS% /C "cmd /c echo @path @fsize @fdate @ftimede l del @path"
IF NOT %ERRORLEVEL% EQU 0 GOTO SEC_NG
GOTO SEC_OK
:SEC_NG
ECHO SEC_NG %ERRORLEVEL%
EXIT /B 1
:SEC_OK
EXIT /B 0
:: *********************************************************************************
:: volume info
:: *********************************************************************************
:volumeinfo
for /F "tokens=1,2,*" %%I in ('fsutil volume diskfree D:') do (
if %%I==利用可能な空きバイト総数 (
echo %%K
set str=%%K
echo %str%
echo www
rem set num=%str:~0,-3%
rem set /a M=1024
rem set /a int=%num% / %M%
rem set free_k=%int%
rem call :trim %%K
rem set free_k=%%K
)
if %%I==バイト総数 (
echo %%K
set str=%%K
rem echo %str%
rem set num=%str:~0,-3%
rem set /a M=1024
rem set /a int=%num% / %M%
rem set all_k=%int%
rem call :trim %%K
rem set all_k=%%K
)
)
echo %free_k% %all_k%
:: *********************************************************************************
:: triming MB
:: *********************************************************************************
:trim
set str=%~1
set num=%str:~0,-3%
set /a M=1024
set /a int=%num% / %M%
set MB=%int%
echo %MB%MB
exit /b 0
rem *********************************************************************************
rem event log out
rem Input
rem Level
rem Description
rem *********************************************************************************
:SetEVNTLOG
SET event_Level=%1
SET event_ID=%2
SET event_Description=%3
SET event_Source="Acronis"
SET event_LogName=APPLICATION
EVENTCREATE /T %event_Level% /ID %event_ID% /D %event_Description% /SO %event_Source% /L %event_LogName%
IF %ERRORLEVEL% EQU 0 GOTO LOGEND
echo %ERRORLEVEL%
:LOGEND
EXIT /B
2014年9月25日木曜日
aa
http://d.hatena.ne.jp/replication/20130308/1362809696
http://ameblo.jp/syou007/entry-10022425617.html
http://jibun.atmarkit.co.jp/lcareer01/rensai/career33/data33.html
http://www.nsa.or.jp/make_jimu/committee/9/data/09001.pdf
http://ameblo.jp/syou007/entry-10022425617.html
http://jibun.atmarkit.co.jp/lcareer01/rensai/career33/data33.html
http://www.nsa.or.jp/make_jimu/committee/9/data/09001.pdf
2014年9月16日火曜日
EVENTLOG SAMPLE
echo off
CALL :GetDateTime
SET StartTEMPDATE=%TEMPDATE%
SET StartTEMPTIME=%TEMPTIME%
rem -↓↓↓---------------------------------------------------------------------------
pause
echo %StartTEMPDATE%
echo %StartTEMPTIME%
rem wevtutil qe Application /c:10 /rd:true /f:text
rem -↑↑↑---------------------------------------------------------------------------
rem IF NOT %RC% EQU 0 GOTO NG
IF NOT %ERRORLEVEL% EQU 0 GOTO NG
CALL :GetDateTime2 %StartTEMPDATE% %StartTEMPTIME%
SET event_Level=INFORMATION
SET event_ID=901
SET event_Description="%computername% HotBKUP %~n0 %1 Success %ERRORLEVEL% %StartTEMPDATE% %StartTEMPTIME% %TEMPSEC%s"
GOTO OK
:NG
CALL :GetDateTime2 %StartTEMPDATE% %StartTEMPTIME%
SET event_Level=ERROR
SET event_ID=902
SET event_Description="%computername% HotBKUP %~n0 %1 ERROR %ERRORLEVEL% %StartTEMPDATE% %StartTEMPTIME% %TEMPSEC%s "
:OK
echo %event_Level%_%event_ID%_%event_Description%
CALL :SetEVNTLOG %event_Level% %event_ID% %event_Description%
EXIT /B
rem *********************************************************************************
rem event log out
rem Input
rem Level
rem Description
rem *********************************************************************************
:SetEVNTLOG
SET event_Level=%1
SET event_ID=%2
SET event_Description=%3
SET event_Source="Acronis"
SET event_LogName=APPLICATION
EVENTCREATE /T %event_Level% /ID %event_ID% /D %event_Description% /SO %event_Source% /L %event_LogName%
IF %ERRORLEVEL% EQU 0 GOTO LOGEND
echo %ERRORLEVEL%
:LOGEND
EXIT /B
rem *********************************************************************************
rem Get start date time
rem Result
rem TEMPDATE
rem TEMPTIME
rem *********************************************************************************
:GetDateTime
rem FOR /F "tokens=1-3 delims=/" %%D IN ("%date%") DO set TEMPDATE=%%D%%E%%F
rem echo %TEMPDATE%
rem FOR /F "tokens=1-3 delims=:" %%D IN ("%time%") DO echo %%D%%E%%F
rem exit /b
SET TEMPDATE=%date:~-10,4%%date:~-5,2%%date:~-2,2%
SET TEMPTIME2=%time: =0%
SET TEMPTIME=%TEMPTIME2:~0,2%%time:~3,2%%time:~6,2%
EXIT /B
rem *********************************************************************************
rem Get end date time & GapTime
rem
rem Input
rem StartTEMPDATE
rem StartTEMPTIME
rem Result
rem TEMPDATE
rem TEMPTIME
rem TEMPSEC
rem *********************************************************************************
:GetDateTime2
SET StartTEMPDATE=%1
SET StartTEMPTIME=%2
SET TEMPDATE=%date:~-10,4%%date:~-5,2%%date:~-2,2%
SET TEMPTIME2=%time: =0%
SET TEMPTIME=%TEMPTIME2:~0,2%%time:~3,2%%time:~6,2%
rem ----------------------------------------------------
SET EndTEMPDATE=%TEMPDATE%
SET EndTEMPTIME=%TEMPTIME%
SET /a Gapdate=(%EndTEMPDATE%-%StartTEMPDATE%) * 3600 * 24
SET /a Esec=%EndTEMPTIME:~0,2% * 3600 + %EndTEMPTIME:~2,2% * 60 + %EndTEMPTIME:~4,2%
SET /a Ssec=%StartTEMPTIME:~0,2% * 3600 + %StartTEMPTIME:~2,2% * 60 + %StartTEMPTIME:~4,2%
SET /a TEMPSEC=%Gapdate% + (%Esec% - %Ssec%)
echo GetDateTime2=%TEMPSEC%
EXIT /B
rem *********************************************************************************
CALL :GetDateTime
SET StartTEMPDATE=%TEMPDATE%
SET StartTEMPTIME=%TEMPTIME%
rem -↓↓↓---------------------------------------------------------------------------
pause
echo %StartTEMPDATE%
echo %StartTEMPTIME%
rem wevtutil qe Application /c:10 /rd:true /f:text
rem -↑↑↑---------------------------------------------------------------------------
rem IF NOT %RC% EQU 0 GOTO NG
IF NOT %ERRORLEVEL% EQU 0 GOTO NG
CALL :GetDateTime2 %StartTEMPDATE% %StartTEMPTIME%
SET event_Level=INFORMATION
SET event_ID=901
SET event_Description="%computername% HotBKUP %~n0 %1 Success %ERRORLEVEL% %StartTEMPDATE% %StartTEMPTIME% %TEMPSEC%s"
GOTO OK
:NG
CALL :GetDateTime2 %StartTEMPDATE% %StartTEMPTIME%
SET event_Level=ERROR
SET event_ID=902
SET event_Description="%computername% HotBKUP %~n0 %1 ERROR %ERRORLEVEL% %StartTEMPDATE% %StartTEMPTIME% %TEMPSEC%s "
:OK
echo %event_Level%_%event_ID%_%event_Description%
CALL :SetEVNTLOG %event_Level% %event_ID% %event_Description%
EXIT /B
rem *********************************************************************************
rem event log out
rem Input
rem Level
rem Description
rem *********************************************************************************
:SetEVNTLOG
SET event_Level=%1
SET event_ID=%2
SET event_Description=%3
SET event_Source="Acronis"
SET event_LogName=APPLICATION
EVENTCREATE /T %event_Level% /ID %event_ID% /D %event_Description% /SO %event_Source% /L %event_LogName%
IF %ERRORLEVEL% EQU 0 GOTO LOGEND
echo %ERRORLEVEL%
:LOGEND
EXIT /B
rem *********************************************************************************
rem Get start date time
rem Result
rem TEMPDATE
rem TEMPTIME
rem *********************************************************************************
:GetDateTime
rem FOR /F "tokens=1-3 delims=/" %%D IN ("%date%") DO set TEMPDATE=%%D%%E%%F
rem echo %TEMPDATE%
rem FOR /F "tokens=1-3 delims=:" %%D IN ("%time%") DO echo %%D%%E%%F
rem exit /b
SET TEMPDATE=%date:~-10,4%%date:~-5,2%%date:~-2,2%
SET TEMPTIME2=%time: =0%
SET TEMPTIME=%TEMPTIME2:~0,2%%time:~3,2%%time:~6,2%
EXIT /B
rem *********************************************************************************
rem Get end date time & GapTime
rem
rem Input
rem StartTEMPDATE
rem StartTEMPTIME
rem Result
rem TEMPDATE
rem TEMPTIME
rem TEMPSEC
rem *********************************************************************************
:GetDateTime2
SET StartTEMPDATE=%1
SET StartTEMPTIME=%2
SET TEMPDATE=%date:~-10,4%%date:~-5,2%%date:~-2,2%
SET TEMPTIME2=%time: =0%
SET TEMPTIME=%TEMPTIME2:~0,2%%time:~3,2%%time:~6,2%
rem ----------------------------------------------------
SET EndTEMPDATE=%TEMPDATE%
SET EndTEMPTIME=%TEMPTIME%
SET /a Gapdate=(%EndTEMPDATE%-%StartTEMPDATE%) * 3600 * 24
SET /a Esec=%EndTEMPTIME:~0,2% * 3600 + %EndTEMPTIME:~2,2% * 60 + %EndTEMPTIME:~4,2%
SET /a Ssec=%StartTEMPTIME:~0,2% * 3600 + %StartTEMPTIME:~2,2% * 60 + %StartTEMPTIME:~4,2%
SET /a TEMPSEC=%Gapdate% + (%Esec% - %Ssec%)
echo GetDateTime2=%TEMPSEC%
EXIT /B
rem *********************************************************************************
2014年6月9日月曜日
iCacls
C:\Users\Forza1063>icacls c:\windows\* /save 20140607_iCals.log /T /C
C:\Users\Forza1063>icacls d:admtools\* /save d:\admtools\log\20140608_iCals.log /T /C
00_SubinAclSKEL.bat
:開始
@ECHO off
REM =============環境に応じて、修正してください。=====================================
SET SUBIINACL="C:\Program Files (x86)\Windows Resource Kits\Tools\subinacl.exe"
SET ACLSUBDIR="d:\####\*.*"
SET option1=directoriesonly
SET option2=filesonly
SET option
SET option=%option1%
rem SET option=%option2%
rem SET ACLSUBDIRoption=/subdirectories
SET ACLSUBDIRoption=/subdirectories=%option%
rem SET ACLSUBDIRoption=/subdirectories=%option%
SET YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
SET Time_edit=%time: =0%
SET HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%
rem SET ACLLOG=d:\admtools\RoboACL\log\%0_%option%_%YYYYMMDD%_%HHMMSS%.log
SET ACLLOG=d:\admtools\RoboACL\log\####_%option%_%YYYYMMDD%_%HHMMSS%.log
ECHO ==============================================================================
ECHO.
ECHO ↓↓↓↓↓ 自動生成、subinacl実行コマンド ここから ↓↓↓↓↓
ECHO.
ECHO %SUBIINACL% /noverbose /outputlog=%ACLLOG% %ACLSUBDIRoption% %ACLSUBDIR% /display
ECHO.
ECHO ↑↑↑↑↑ 自動生成、subinacl実行コマンド ここまで ↑↑↑↑↑
ECHO ******************************************************************************
ECHO * ACL処理実行確認 %0
ECHO * %SUBIINACL%
ECHO * ディレクトリ :%ACLSUBDIR%
ECHO * オプション :%ACLSUBDIRoption%
ECHO * :
ECHO * ログパス :%ACLLOG%
ECHO * :
ECHO * start :実行を開始
ECHO * quit :実行を中止
ECHO * 上記以外の文字:当バッチ処理の先頭に戻ります
ECHO ******************************************************************************
IF "%1"=="G" GOTO ACL実行
SET /P Console_input="処理続行選択(上記参照) : "
IF /I "%Console_input%"=="quit" EXIT
IF /I "%Console_input%"=="start" GOTO ACL実行
GOTO 開始
PAUSE
:ACL実行
%SUBIINACL% /noverbose /outputlog=%ACLLOG% %ACLSUBDIRoption% %ACLSUBDIR% /display
:ACL終了
EXIT /b %ERRORLEVEL%
@ECHO off
REM =============環境に応じて、修正してください。=====================================
SET SUBIINACL="C:\Program Files (x86)\Windows Resource Kits\Tools\subinacl.exe"
SET ACLSUBDIR="d:\####\*.*"
SET option1=directoriesonly
SET option2=filesonly
SET option
SET option=%option1%
rem SET option=%option2%
rem SET ACLSUBDIRoption=/subdirectories
SET ACLSUBDIRoption=/subdirectories=%option%
rem SET ACLSUBDIRoption=/subdirectories=%option%
SET YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
SET Time_edit=%time: =0%
SET HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%
rem SET ACLLOG=d:\admtools\RoboACL\log\%0_%option%_%YYYYMMDD%_%HHMMSS%.log
SET ACLLOG=d:\admtools\RoboACL\log\####_%option%_%YYYYMMDD%_%HHMMSS%.log
ECHO ==============================================================================
ECHO.
ECHO ↓↓↓↓↓ 自動生成、subinacl実行コマンド ここから ↓↓↓↓↓
ECHO.
ECHO %SUBIINACL% /noverbose /outputlog=%ACLLOG% %ACLSUBDIRoption% %ACLSUBDIR% /display
ECHO.
ECHO ↑↑↑↑↑ 自動生成、subinacl実行コマンド ここまで ↑↑↑↑↑
ECHO ******************************************************************************
ECHO * ACL処理実行確認 %0
ECHO * %SUBIINACL%
ECHO * ディレクトリ :%ACLSUBDIR%
ECHO * オプション :%ACLSUBDIRoption%
ECHO * :
ECHO * ログパス :%ACLLOG%
ECHO * :
ECHO * start :実行を開始
ECHO * quit :実行を中止
ECHO * 上記以外の文字:当バッチ処理の先頭に戻ります
ECHO ******************************************************************************
IF "%1"=="G" GOTO ACL実行
SET /P Console_input="処理続行選択(上記参照) : "
IF /I "%Console_input%"=="quit" EXIT
IF /I "%Console_input%"=="start" GOTO ACL実行
GOTO 開始
PAUSE
:ACL実行
%SUBIINACL% /noverbose /outputlog=%ACLLOG% %ACLSUBDIRoption% %ACLSUBDIR% /display
:ACL終了
EXIT /b %ERRORLEVEL%
00_SuninAclGEN.vbs
MYFILE = "D:\admtools\RoboACL\00_SubinAclSKEL.bat"
'Option Explicit
On Error Resume Next
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile("00_SubinAcl.INI")
'Set objFile = objFSO.OpenTextFile(MYFILE)
If Err.Number = 0 Then
Do While objFile.AtEndOfStream <> True
'WScript.Echo objFile.ReadLine
CHWORD = objFile.ReadLine
'CHWORD = "AAAA"
OFILE = CHWORD
Call CreateBatch(MYFILE,CHWORD,OFILE)
Loop
objFile.Close
Else
WScript.Echo "ファイルオープンエラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objFile = Nothing
Set objFSO = Nothing
Sub CreateBatch(MYFILE, CHWORD, OFILE)
'テキストファイルのフルパス
Dim myA(9) : Dim myB(9)
myA(0) = "####" : myB(0) = CHWORD
myA(2) = "" : myB(2) = ""
myA(3) = "" : myB(3) = ""
myA(4) = "" : myB(4) = ""
myA(5) = "" : myB(5) = ""
myA(6) = "" : myB(6) = ""
myA(7) = "" : myB(7) = ""
myA(8) = "" : myB(8) = ""
myA(9) = "" : myB(9) = ""
'「A.変更前」と「B.変更後」を指定する
'消去なら「""」
'置換なら「"置換するものを書く"」
'---------------------------------
With CreateObject("Scripting.FileSystemObject")
With .GetFile(MYFILE).OpenAsTextStream
myALLData = .ReadAll
.Close
End With
'---------------------------------
For j = 0 To UBound(myA)
If myA(j) <> "" Then _
myALLData = Replace(myALLData, myA(j), myB(j))
Next
'---------------------------------
myFLD = .GetFile(MYFILE).ParentFolder & "\"
myExt = "." & .GetExtensionName(MYFILE)
myName = myFLD & .GetBaseName(MYFILE)
myName = OFILE
Do
i = i + 1
MYFILE2 = myName & myExt
'MYFILE2 = myName & "(" & i & ")" & myExt
If Not .FileExists(MYFILE2) Then Exit Do
Loop
'---------------------------------
With .OpenTextFile(MYFILE2, 2, True)
.Write myALLData
.Close
End With
End With
End Sub
Msgbox "END"
'Option Explicit
On Error Resume Next
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile("00_SubinAcl.INI")
'Set objFile = objFSO.OpenTextFile(MYFILE)
If Err.Number = 0 Then
Do While objFile.AtEndOfStream <> True
'WScript.Echo objFile.ReadLine
CHWORD = objFile.ReadLine
'CHWORD = "AAAA"
OFILE = CHWORD
Call CreateBatch(MYFILE,CHWORD,OFILE)
Loop
objFile.Close
Else
WScript.Echo "ファイルオープンエラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objFile = Nothing
Set objFSO = Nothing
Sub CreateBatch(MYFILE, CHWORD, OFILE)
'テキストファイルのフルパス
Dim myA(9) : Dim myB(9)
myA(0) = "####" : myB(0) = CHWORD
myA(2) = "" : myB(2) = ""
myA(3) = "" : myB(3) = ""
myA(4) = "" : myB(4) = ""
myA(5) = "" : myB(5) = ""
myA(6) = "" : myB(6) = ""
myA(7) = "" : myB(7) = ""
myA(8) = "" : myB(8) = ""
myA(9) = "" : myB(9) = ""
'「A.変更前」と「B.変更後」を指定する
'消去なら「""」
'置換なら「"置換するものを書く"」
'---------------------------------
With CreateObject("Scripting.FileSystemObject")
With .GetFile(MYFILE).OpenAsTextStream
myALLData = .ReadAll
.Close
End With
'---------------------------------
For j = 0 To UBound(myA)
If myA(j) <> "" Then _
myALLData = Replace(myALLData, myA(j), myB(j))
Next
'---------------------------------
myFLD = .GetFile(MYFILE).ParentFolder & "\"
myExt = "." & .GetExtensionName(MYFILE)
myName = myFLD & .GetBaseName(MYFILE)
myName = OFILE
Do
i = i + 1
MYFILE2 = myName & myExt
'MYFILE2 = myName & "(" & i & ")" & myExt
If Not .FileExists(MYFILE2) Then Exit Do
Loop
'---------------------------------
With .OpenTextFile(MYFILE2, 2, True)
.Write myALLData
.Close
End With
End With
End Sub
Msgbox "END"
2014年6月5日木曜日
確認
■フルコピー時にアクセスエラーとなる件について
約1500件あったが、backupadmin で実施することでコピー成功済。対象フォルダにdomain adminが読み込み権限となっていた。
一件 xxxx のみコピーできず、ACL上問題なし。ファイルが壊れていないか?
■フルコピーのコピー先フォルダがアクセスエラーで一覧をドリルダウンして確認することができないものがある
domain user の権限のみ付け直しでアクセスできるのか確認中。
■差分
pstファイルは対象外
①teamで実施。7時間でxxx消化で全然消化できなかった。
②多重化で全体処理時間に効果あるか確認中
8並行でグループ単位びファウル数がなるべく均等になるようにして実施中
robocopyでカテゴリ化にCPUを使用、メモリはボトルネックとならない。ネット和^九もデータ移送が少ないことから問題なし
ioアクセスに時間がかかると見ています。
③リアル監視の機能確認 予定
■ACLの取得情報について
検証
ツールを入手(3階層可能であればこれを利用したい)
フルコピー時
案 上位3層のフォルダ権限の移送を確認
案 全数実施は時間がかかる、3層移行は権限継承の運用のため
差分コピー時
上位3層のフォルダの追加変更があればを確認
■フォルダ ファイルの件数確認について
検証
ツールにて確認予定で作成中
フルコピー時
移送元、移送先で 全数確認
差分コピー時
ツールコピー分のみ件数確認
2014年6月4日水曜日
RoboCopy subinacl
subinacl /noverbose /outputlog=d\admtools\acl.log /subdirectories d:\admtools /display
2014年6月2日月曜日
差分Robo
robocopy "D:\admtools\in" "D:\admtools\out" *.* MON:5 MOT:5 /RH:0700-2358 /MIR /XO /NP /COPY:DATSO /R:0 /LOG+:"d:\admtools\log\log2.txt" /FP /TS /TEE
dirusem
' --< フォルダの再帰処理 >------------------------------------------------------
Sub FolderSearch1(fn)
' 引数に指定されたフォルダの情報を取得
Set subf = fso.GetFolder(fn)
' ファイル数と、サブフォルダ数の加算
TotalCountFile = TotalCountFile + subf.Files.Count
TotalCountFolder = TotalCountFolder + subf.Subfolders.Count
iTotalCountFile = subf.Files.Count
iTotalCountFolder = subf.Subfolders.Count
' 指定のフォルダに格納された各ファイルの処理
For Each FileName In subf.Files
TotalSize = TotalSize + FileName.Size
iTotalSize = iTotalSize + FileName.Size
Next
if iTotalCountFile = 0 then
iTotalSize = 0
end if
WScript.Echo "" & iTotalCountFolder & " " & iTotalCountFile & " " & iTotalSize & " SUB-TOTAL:" & fn
' 指定のフォルダに格納された各サブフォルダを処理する
For Each FolderName In subf.Subfolders
FolderSearch1(FolderName)
Next
End Sub
Sub FolderSearch2(fn)
' 引数に指定されたフォルダの情報を取得
Set subf = fso.GetFolder(fn)
' ファイル数と、サブフォルダ数の加算
TotalCountFile = TotalCountFile + subf.Files.Count
TotalCountFolder = TotalCountFolder + subf.Subfolders.Count
' 指定のフォルダに格納された各ファイルの処理
For Each FileName In subf.Files
TotalSize = TotalSize + FileName.Size
Next
' 指定のフォルダに格納された各サブフォルダを処理する
For Each FolderName In subf.Subfolders
FolderSearch2(FolderName)
Next
End Sub
' --< メインルーチン >----------------------------------------------------------
' オブジェクト定義
Set arg = WScript.Arguments
Set fso = CreateObject("Scripting.FileSystemObject")
' カウンタクリア
TotalSize = 0
TotalCountFile = 0
TotalCountFolder = 0
' フォルダ探索開始
WScript.Echo now()
WScript.Echo "Directorys Files Size(b) Directory"
If arg.Count < 2 Then
FolderSearch2(arg(0))
else
FolderSearch1(arg(0))
end if
' 結果表示
WScript.Echo TotalCountFolder & " " & TotalCountFile & " " & TotalSize & " TOTAL:" & arg(0)
WScript.Echo now()
2014年5月30日金曜日
Diruseモドキ
Option Explicit
Dim objApl
Dim objFolder
Dim objFolderItems
Dim numFolderSize
Dim numFileCount
Dim numFolderCount
numFolderSize=0
numFileCount=0
numFolderCount=0
'①シェルアプリケーションオブジェクトを作成します
Set objApl = WScript.CreateObject("Shell.Application")
'②探りを入れたいフォルダのオブジェクトを作成します
'Set objFolder = objApl.NameSpace("i:\r")
Set objFolder = objApl.NameSpace("\\127.0.0.1\r")
'③フォルダオブジェクトから、入っているファイルや
' フォルダの情報を取得します
Set objFolderItems = objFolder.Items()
'フォルダの検索処理の呼び出し
Call prcFolderSize (objFolderItems)
'結果の表示。総容量、総ファイル数、総フォルダ数を表示
WScript.Echo "フォルダC:\happyの容量は、約" & numFolderSize & "バイトです"
WScript.Echo "フォルダC:\happyのファイル数は、約" & numFileCount & "個です"
WScript.Echo "フォルダC:\happyのフォルダ数は、約" & numFolderCount & "個です"
Set objFolderItems = Nothing
Set objFolder = Nothing
Set objApl = Nothing
'==============================================================
'= フォルダ内に含まれるファイルやフォルダを検索する
'==============================================================
Sub prcFolderSize(tmpFolderItems)
Dim objFolderItemsB
Dim objItem
Dim i
'④何個入っていたかは、Countで参照
For i=0 To tmpFolderItems.Count-1
'⑤ファイルやフォルダの情報を1コ取り出します
Set objItem = tmpFolderItems.Item(i)
'⑥取り出した物がファイルかフォルダかを判定
If objItem.IsFolder Then
'⑦フォルダであれば、フォルダアイテムオブジェクトを
' 作り、それを引数としてprcFolderSizeを再帰呼び出します
Set objFolderItemsB = objItem.GetFolder
Call prcFolderSize (objFolderItemsB.Items())
numFolderCount = numFolderCount + 1
Else
'⑧ファイルの場合は、サイズとファイル数を集計します
numFolderSize = numFolderSize + objItem.Size
numFileCount = numFileCount + 1
End If
Next
Set objItem = Nothing
Set objFolderItemsB = Nothing
End Sub
Dim objApl
Dim objFolder
Dim objFolderItems
Dim numFolderSize
Dim numFileCount
Dim numFolderCount
numFolderSize=0
numFileCount=0
numFolderCount=0
'①シェルアプリケーションオブジェクトを作成します
Set objApl = WScript.CreateObject("Shell.Application")
'②探りを入れたいフォルダのオブジェクトを作成します
'Set objFolder = objApl.NameSpace("i:\r")
Set objFolder = objApl.NameSpace("\\127.0.0.1\r")
'③フォルダオブジェクトから、入っているファイルや
' フォルダの情報を取得します
Set objFolderItems = objFolder.Items()
'フォルダの検索処理の呼び出し
Call prcFolderSize (objFolderItems)
'結果の表示。総容量、総ファイル数、総フォルダ数を表示
WScript.Echo "フォルダC:\happyの容量は、約" & numFolderSize & "バイトです"
WScript.Echo "フォルダC:\happyのファイル数は、約" & numFileCount & "個です"
WScript.Echo "フォルダC:\happyのフォルダ数は、約" & numFolderCount & "個です"
Set objFolderItems = Nothing
Set objFolder = Nothing
Set objApl = Nothing
'==============================================================
'= フォルダ内に含まれるファイルやフォルダを検索する
'==============================================================
Sub prcFolderSize(tmpFolderItems)
Dim objFolderItemsB
Dim objItem
Dim i
'④何個入っていたかは、Countで参照
For i=0 To tmpFolderItems.Count-1
'⑤ファイルやフォルダの情報を1コ取り出します
Set objItem = tmpFolderItems.Item(i)
'⑥取り出した物がファイルかフォルダかを判定
If objItem.IsFolder Then
'⑦フォルダであれば、フォルダアイテムオブジェクトを
' 作り、それを引数としてprcFolderSizeを再帰呼び出します
Set objFolderItemsB = objItem.GetFolder
Call prcFolderSize (objFolderItemsB.Items())
numFolderCount = numFolderCount + 1
Else
'⑧ファイルの場合は、サイズとファイル数を集計します
numFolderSize = numFolderSize + objItem.Size
numFileCount = numFileCount + 1
End If
Next
Set objItem = Nothing
Set objFolderItemsB = Nothing
End Sub
2014年5月27日火曜日
du3 http://www1.u-netsurf.ne.jp/~tomo_c/tips/R23Lev15.html
' --< フォルダの再帰処理 >------------------------------------------------------
Sub FolderSearch(fn)
' 引数に指定されたフォルダの情報を取得
Set subf = fso.GetFolder(fn)
' ファイル数と、サブフォルダ数の加算
TotalCountFile = TotalCountFile + subf.Files.Count
TotalCountFolder = TotalCountFolder + subf.Subfolders.Count
' 指定のフォルダに格納された各ファイルの処理
For Each FileName In subf.Files
TotalSize = TotalSize + FileName.Size
Next
' 指定のフォルダに格納された各サブフォルダを処理する
For Each FolderName In subf.Subfolders
WScript.Echo FolderName
FolderSearch(FolderName)
Next
End Sub
' --< メインルーチン >----------------------------------------------------------
' オブジェクト定義
Set arg = WScript.Arguments
Set fso = CreateObject("Scripting.FileSystemObject")
' カウンタクリア
TotalSize = 0
TotalCountFile = 0
TotalCountFolder = 0
' フォルダ探索開始
FolderSearch(arg(0))
' 結果表示
WScript.Echo "調査フォルダ:" & arg(0)
WScript.Echo "ファイル数:" & TotalCountFile
WScript.Echo "フォルダ数:" & TotalCountFolder
WScript.Echo "ファイル総容量:" & TotalSize
2014年5月23日金曜日
方針計画
■昨日の仮想VM統計を出力
■昨日のJOBは稼働しているか
■シーケンシャルのJOBは動いているか
■8平行実施
CPU4コアにする、JOB8分割にする
-----------------------------------------------------------------------------------
確認をどの範囲を誰が、いつやるか。
どんな確認項目があるの
どの範囲を行うのか、サンプリングか全数か
誰が行うのか、計画かインフラかユーザか
その方法は、ツールがあるか、ないか
いつやすのか、
新規の前後、差分の前後、移行の前後
----------------------------------------------------------------------------------
切り戻しはどのように行うか
切替はどのように行うか
差分の取り込みはどうするのか
findstr
d:\admtools\robo>findstr /c:"開始:" /c:"ディレクトリ:" /c:"バイト:" /c:"ファイル:" /c:"終了:" /c:"エラー" Robocopy_local.log
開始: 2014年5月18日 23:23:43
ファイル: *.*
ディレクトリ: 2 0 0 0 0 1
ファイル: 26 0 26 0 0 0
バイト: 10.51 m 0 10.51 m 0 0 0
終了: 2014年5月18日 23:23:44
d:\admtools\robo>
開始: 2014年5月18日 23:23:43
ファイル: *.*
ディレクトリ: 2 0 0 0 0 1
ファイル: 26 0 26 0 0 0
バイト: 10.51 m 0 10.51 m 0 0 0
終了: 2014年5月18日 23:23:44
d:\admtools\robo>
2014年5月21日水曜日
https://www.google.co.jp/?gfe_rd=cr&ei=TNR7U67EEYrH8gfVm4C4Aw#q=robocopy+%2FMON%3An%E3%80%80%E3%81%8C%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%AA%E3%82%89%E3%81%AA%E3%81%84
http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCkQFjAA&url=http%3A%2F%2Fwww.aichi-c.ed.jp%2Fcontents%2Fnetwork%2FADcontrol_backup%2Frbcopy.xlsx&ei=pNR7U9P2NsWhugSG94G4Bg&usg=AFQjCNEYSPwxHaCqH-ax_XiCAc8d2rl-Lw&sig2=AiXkKvZ6JhUofC1ysyY4yA
http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCkQFjAA&url=http%3A%2F%2Fwww.aichi-c.ed.jp%2Fcontents%2Fnetwork%2FADcontrol_backup%2Frbcopy.xlsx&ei=pNR7U9P2NsWhugSG94G4Bg&usg=AFQjCNEYSPwxHaCqH-ax_XiCAc8d2rl-Lw&sig2=AiXkKvZ6JhUofC1ysyY4yA
rrobocopy
■
http://social.technet.microsoft.com/Forums/windowsserver/ja-JP/f0db5e3b-1e52-40a6-99e1-a281a5d115d2/robocopy?forum=windowsserver2008ja
■
http://msdn.microsoft.com/ja-jp/library/Cc429198
http://d.hatena.ne.jp/turkey_hate/20130712
■
http://jbar.jp/ishimaken/robocopy.html
http://support.microsoft.com/kb/2646535/ja
http://www.dream-seed.com/weblog/archives/2011/10/12652/
http://social.technet.microsoft.com/Forums/windowsserver/ja-JP/f0db5e3b-1e52-40a6-99e1-a281a5d115d2/robocopy?forum=windowsserver2008ja
■
http://msdn.microsoft.com/ja-jp/library/Cc429198
http://d.hatena.ne.jp/turkey_hate/20130712
■
http://jbar.jp/ishimaken/robocopy.html
http://support.microsoft.com/kb/2646535/ja
http://www.dream-seed.com/weblog/archives/2011/10/12652/
2014年5月19日月曜日
GEN1.bat
:開始
@echo off
echo %0
echo %1
echo %2
REM =============環境に応じて、修正してください。=====================================
REM set COPY_TOPIC=移行
REM set COPY_NAME=####
REM ==================================================================================
set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
set Time_edit=%time: =0%
set HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%
echo.
echo *************************************************
echo * 重要!! バッチ処理実行確認1
echo * %0
echo * %1
echo * %2
echo * 日付 時刻 :%YYYYMMDD% %HHMMSS%
echo *************************************************
echo.
set /P Console_input="処理続行選択(上記参照) : "
if /I "%Console_input%"=="quit" exit
if /I "%Console_input%"=="start" goto ROBOCOPY実行
goto 開始
pause
:ROBOCOPY実行
echo "########### start ########### "
pause
exit /b 0
@echo off
echo %0
echo %1
echo %2
REM =============環境に応じて、修正してください。=====================================
REM set COPY_TOPIC=移行
REM set COPY_NAME=####
REM ==================================================================================
set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
set Time_edit=%time: =0%
set HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%
echo.
echo *************************************************
echo * 重要!! バッチ処理実行確認1
echo * %0
echo * %1
echo * %2
echo * 日付 時刻 :%YYYYMMDD% %HHMMSS%
echo *************************************************
echo.
set /P Console_input="処理続行選択(上記参照) : "
if /I "%Console_input%"=="quit" exit
if /I "%Console_input%"=="start" goto ROBOCOPY実行
goto 開始
pause
:ROBOCOPY実行
echo "########### start ########### "
pause
exit /b 0
01_GEN_CTL.vbs
INFILE = "01_GEN_CTL.INI"
OUTFILE = "01_GEN_CTL"
'Option Explicit
On Error Resume Next
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Dim objFile2 ' ファイル書き込み用
Dim INFILE_Batch_Name ' バッチ名(フォルダ名)
Dim Batch_File_Name ' バッチファイル名
Dim iNo
dim YYYYMMDD
dim Time_edit
dim HHMMSS
dim BT_OPTION
'Check parameter
BT_OPTION = "J"
If iArgCount >=1 Then
If (CStr(wscript.Arguments(0))="G") or (CStr(wscript.Arguments(0))= "L") Then
WriteOutput iArgCount
BT_OPTION = wscript.Arguments(0)
End If
End If
'WScript.Echo SYORI_JIKAN
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile(INFILE)
If Err.Number = 0 Then
Set objFSO2 = WScript.CreateObject("Scripting.FileSystemObject")
OUTFILE = OUTFILE & "_" & SYORI_JIKAN() & ".txt"
Set objFile2 = objFSO2.OpenTextFile(OUTFILE, 2, True)
HaedoutOut(objFile2)
iNo=0
Do While objFile.AtEndOfStream <> True
INFILE_Batch_Name= objFile.ReadLine
iNo = iNo + 1
Batch_File_Name = INFILE_Batch_Name & ".bat " & BT_OPTION
ContentsOut objFile2,iNo,Batch_File_Name
Loop
if iNo = 0 Then
WriteErrorMessageAndExit " Data None ERROR: "
objFile.Close
objFile2.Close
Else
TrailoutOut(objFile2)
objFile.Close
objFile2.Close
End If
Else
WriteErrorMessageAndExit " FILE OPEN ERROR: "
End If
Else
WriteErrorMessageAndExit " ERROR: "
End If
Set objFile = Nothing
Set objFile2 = Nothing
Set objFSO = Nothing
Set objFSO2 = Nothin
WScript.Quit (Result)
''''''''''
' End Main
''''''''''
'*************************************************************
'* Generate Call Batch Statement
'*************************************************************
Sub ContentsOut(objFile2,iNo,Batch_File_Name)
objFile2.WriteLine("ECHO **--------------------------------------------*")
objFile2.WriteLine("ECHO ** " & "(" & iNo & ") Call " & Batch_File_Name)
objFile2.WriteLine("ECHO **--------------------------------------------*")
objFile2.WriteLine("DATE /T ")
objFile2.WriteLine("TIME /T ")
objFile2.WriteLine("CALL " & Batch_File_Name)
objFile2.WriteLine("IF NOT " & "%ERRORLEVEL%" & " == 0 GOTO ERR" & iNo)
objFile2.WriteLine(" ECHO " & """ **END** """ & " " & Batch_File_Name)
objFile2.WriteLine(" GOTO OK" & iNo)
objFile2.WriteLine(":ERR" & iNo)
objFile2.WriteLine(" ECHO " & """ **ENDOTHER** """ & " %ERRORLEVEL% " & Batch_File_Name)
objFile2.WriteLine(":OK" & iNo)
objFile2.WriteLine("DATE /T ")
objFile2.WriteLine("TIME /T ")
objFile2.WriteLine("ECHO **")
End Sub
'*************************************************************
'* Current time
'*************************************************************
Function SYORI_JIKAN1()
dim YYYYMMDD
dim Time_edit
dim HHMMSS
dim R_SYORI_JIKAN
YYYYMMDD="%date:~0,4%%date:~5,2%%date:~8,2%"
Time_edit="%time: =0%"
HHMMSS="%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%"
R_SYORI_JIKAN = YYYYMMDD & "_" & HHMMSS
SYORI_JIKAN1 = R_SYORI_JIKAN
End Function
Function SYORI_JIKAN()
Dim dtmNowDate '時刻
Dim strDestFileName
dtmNowDate = Now() '現在時刻の取得
strDestFileName = Year(dtmNowDate)& _
Right("0" & Month(dtmNowDate), 2) & _
Right("0" & Day(dtmNowDate), 2) & _
Right("0" & Hour(dtmNowDate), 2) & _
Right("0" & Minute(dtmNowDate), 2) & _
Right("0" & Second(dtmNowDate), 2)
SYORI_JIKAN = strDestFileName
End Function
'*************************************************************
'* Generate Batch Head Statement
'*************************************************************
Sub HaedoutOut(objFile2)
objFile2.WriteLine("ECHO **********************************************")
objFile2.WriteLine("ECHO ** HEADER RECORD *****************************")
objFile2.WriteLine("ECHO **********************************************")
dim YYYYMMDD
dim Time_edit
dim HHMMSS
objFile2.WriteLine(":開始")
objFile2.WriteLine("@echo off")
objFile2.WriteLine("set COPY_TOPIC=移行")
objFile2.WriteLine("set COPY_NAME=####")
objFile2.WriteLine("set COPY_LOG_DIR=d:\admtools\log")
YYYYMMDD="%date:~0,4%%date:~5,2%%date:~8,2%"
Time_edit="%time: =0%"
HHMMSS="%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%"
'objFile2.WriteLine(YYYYMMDD)
'objFile2.WriteLine(Time_edit)
'objFile2.WriteLine(HHMMSS)
End Sub
'*************************************************************
'* Generate Batch Trail Statement
'*************************************************************
Sub TrailoutOut(objFile2)
objFile2.WriteLine("ECHO **********************************************")
objFile2.WriteLine("ECHO ** TRAILER RECORD ****************************")
objFile2.WriteLine("ECHO **********************************************")
objFile2.WriteLine("pause")
End Sub
Sub WriteErrorMessageAndExit(strMsg)
Dim strErrNumber , strDescription , strSource
strErrNumber = CStr(Err.Number)
strDescription = CStr(Err.Description)
strSource = CStr(Err.Source)
WriteOutput ""
WriteOutput strMsg
WriteOutput " Error Number : " & strErrNumber & "(0x" & Hex(strErrNumber) & ")"
WriteOutput " Error Description : " & strDescription
WriteOutput " Error Source : " & strSource
wscript.Quit Err.Number
End Sub
Sub WriteOutput(strOutput)
On Error Resume Next
wscript.Echo strOutPut
End Sub
Sub HaltExecution
If Err.Number <> 0 Then wscript.Quit Err.Number
WriteOutPut "xxxx Successfully...."
wscript.Quit
End Sub
00_CopySKEL.bat
:開始
@ECHO off
REM =============環境に応じて、修正してください。=====================================
REM MODE:
REM G :確認画面を表示しない 実際のコピーをする
REM L :
REM none :確認画面を表示する コピー実行する
REM
SET COPY_TOPIC=移行
SET COPY_NAME=####
SET COPY_SRC_DIR=D:\admtools\test\####
SET COPY_DST_DIR=D:\admtools\testd\####
SET COPY_LOG_DIR=d:\admtools\log
REM ==================================================================================
IF "%1"=="" (
ECHO "paramerter nome"
SET Copy_options=/COPY:DATSO /MIR /DCOPY:T /L
) else (
IF NOT "%1"=="L" (
SET Copy_options=/COPY:DATSO /MIR /DCOPY:T
) else (
SET Copy_options=/COPY:DATSO /MIR /DCOPY:T /L
)
)
REM ECHO %0
REM ECHO %1
SET YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
SET Time_edit=%time: =0%
SET HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%
SET Excludes_files="" ""
SET Excludes_directories="" "" ""
SET File_selection_options=
SET Retry_options=/R:0 /W:1
SET Log_file="%COPY_LOG_DIR%\%COPY_TOPIC%_%COPY_NAME%_%YYYYMMDD%_%HHMMSS%.log"
REM --------------------------------------------------------------
rem SET Logging_options=/TEE /LOG:%Log_file%
rem SET Logging_options=/TEE /FP /LOG:%Log_file%
rem SET Logging_options=/TEE /X /FP /LOG:%Log_file%
SET Logging_options=/TEE /V /X /FP /LOG:%Log_file%
REM --------------------------------------------------------------
SET Source="%COPY_SRC_DIR%"
SET Destination="%COPY_DST_DIR%"
REM SET File=*.*
SET Options=%Copy_options% %File_selection_options% %Retry_options% %Logging_options%
:: 自動生成、ROBOCOPY実行コマンドを画面表示で確認する
ECHO.
ECHO ↓↓↓↓↓ 自動生成、ROBOCOPY実行コマンド ここから ↓↓↓↓↓
ECHO.
ECHO robocopy.exe %Source% %Destination% %Options%
ECHO.
ECHO ↑↑↑↑↑ 自動生成、ROBOCOPY実行コマンド ここまで ↑↑↑↑↑
SET Console_input=""
ECHO ******************************************************************************
ECHO *
ECHO * 重要!! バッチ処理実行確認
ECHO * ROBOモード :%ROBOMODE%
ECHO * トピック :%COPY_TOPIC%
ECHO * 移行フォルダ :%COPY_NAME%
ECHO * コピー元 :%COPY_SRC_DIR%
ECHO * コピー先 :%COPY_DST_DIR%
ECHO * 移行ログパス :%COPY_LOG_DIR%
ECHO * 移行ログ名前 :%Log_file%
ECHO *
ECHO * 自動生成した、ROBOCOPY実行コマンドを確認し、処理続行選択について、
ECHO * 以下のように入力(大文字と小文字は区別なし)。
ECHO *
ECHO * start :ROBOCOPYの実行を開始します
ECHO * quit :ROBOCOPYの実行を中止し、当バッチ処理を中止
ECHO * 上記以外の文字:当バッチ処理の先頭に戻ります
ECHO *
ECHO ******************************************************************************
ECHO %1
IF "%1"=="G" GOTO ROBOCOPY実行
SET /P Console_input="処理続行選択(上記参照) : "
IF /I "%Console_input%"=="quit" EXIT
IF /I "%Console_input%"=="start" GOTO ROBOCOPY実行
GOTO 開始
pause
:ROBOCOPY実行
MKDIR %COPY_DST_DIR%\%COPY_NAME%
robocopy.exe %Source% %Destination% %Options%
ECHO %ERRORLEVEL%
IF %ERRORLEVEL%==16 ECHO ***FATAL ERROR*** & GOTO END
IF %ERRORLEVEL%==8 ECHO **FAILED COPIES** & GOTO END
IF %ERRORLEVEL%==4 ECHO *MISMATCHES* & GOTO END
IF %ERRORLEVEL%==3 ECHO XTRA COPY & GOTO END
IF %ERRORLEVEL%==2 ECHO EXTRA FILES & GOTO END
IF %ERRORLEVEL%==1 ECHO Copy successful & GOTO END
IF %ERRORLEVEL%==0 ECHO --no change-- & GOTO END
:END
IF "%1"=="G" GOTO ROBOCOPY終了
pause
:ROBOCOPY終了
EXIT /b %ERRORLEVEL%
bbbbb
@ECHO off
REM =============環境に応じて、修正してください。=====================================
REM MODE:
REM G :確認画面を表示しない 実際のコピーをする
REM L :
REM none :確認画面を表示する コピー実行する
REM
SET COPY_TOPIC=移行
SET COPY_NAME=####
SET COPY_SRC_DIR=D:\admtools\test\####
SET COPY_DST_DIR=D:\admtools\testd\####
SET COPY_LOG_DIR=d:\admtools\log
REM ==================================================================================
IF "%1"=="" (
ECHO "paramerter nome"
SET Copy_options=/COPY:DATSO /MIR /DCOPY:T /L
) else (
IF NOT "%1"=="L" (
SET Copy_options=/COPY:DATSO /MIR /DCOPY:T
) else (
SET Copy_options=/COPY:DATSO /MIR /DCOPY:T /L
)
)
REM ECHO %0
REM ECHO %1
SET YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
SET Time_edit=%time: =0%
SET HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%
SET Excludes_files="" ""
SET Excludes_directories="" "" ""
SET File_selection_options=
SET Retry_options=/R:0 /W:1
SET Log_file="%COPY_LOG_DIR%\%COPY_TOPIC%_%COPY_NAME%_%YYYYMMDD%_%HHMMSS%.log"
REM --------------------------------------------------------------
rem SET Logging_options=/TEE /LOG:%Log_file%
rem SET Logging_options=/TEE /FP /LOG:%Log_file%
rem SET Logging_options=/TEE /X /FP /LOG:%Log_file%
SET Logging_options=/TEE /V /X /FP /LOG:%Log_file%
REM --------------------------------------------------------------
SET Source="%COPY_SRC_DIR%"
SET Destination="%COPY_DST_DIR%"
REM SET File=*.*
SET Options=%Copy_options% %File_selection_options% %Retry_options% %Logging_options%
:: 自動生成、ROBOCOPY実行コマンドを画面表示で確認する
ECHO.
ECHO ↓↓↓↓↓ 自動生成、ROBOCOPY実行コマンド ここから ↓↓↓↓↓
ECHO.
ECHO robocopy.exe %Source% %Destination% %Options%
ECHO.
ECHO ↑↑↑↑↑ 自動生成、ROBOCOPY実行コマンド ここまで ↑↑↑↑↑
SET Console_input=""
ECHO ******************************************************************************
ECHO *
ECHO * 重要!! バッチ処理実行確認
ECHO * ROBOモード :%ROBOMODE%
ECHO * トピック :%COPY_TOPIC%
ECHO * 移行フォルダ :%COPY_NAME%
ECHO * コピー元 :%COPY_SRC_DIR%
ECHO * コピー先 :%COPY_DST_DIR%
ECHO * 移行ログパス :%COPY_LOG_DIR%
ECHO * 移行ログ名前 :%Log_file%
ECHO *
ECHO * 自動生成した、ROBOCOPY実行コマンドを確認し、処理続行選択について、
ECHO * 以下のように入力(大文字と小文字は区別なし)。
ECHO *
ECHO * start :ROBOCOPYの実行を開始します
ECHO * quit :ROBOCOPYの実行を中止し、当バッチ処理を中止
ECHO * 上記以外の文字:当バッチ処理の先頭に戻ります
ECHO *
ECHO ******************************************************************************
ECHO %1
IF "%1"=="G" GOTO ROBOCOPY実行
SET /P Console_input="処理続行選択(上記参照) : "
IF /I "%Console_input%"=="quit" EXIT
IF /I "%Console_input%"=="start" GOTO ROBOCOPY実行
GOTO 開始
pause
:ROBOCOPY実行
MKDIR %COPY_DST_DIR%\%COPY_NAME%
robocopy.exe %Source% %Destination% %Options%
ECHO %ERRORLEVEL%
IF %ERRORLEVEL%==16 ECHO ***FATAL ERROR*** & GOTO END
IF %ERRORLEVEL%==8 ECHO **FAILED COPIES** & GOTO END
IF %ERRORLEVEL%==4 ECHO *MISMATCHES* & GOTO END
IF %ERRORLEVEL%==3 ECHO XTRA COPY & GOTO END
IF %ERRORLEVEL%==2 ECHO EXTRA FILES & GOTO END
IF %ERRORLEVEL%==1 ECHO Copy successful & GOTO END
IF %ERRORLEVEL%==0 ECHO --no change-- & GOTO END
:END
IF "%1"=="G" GOTO ROBOCOPY終了
pause
:ROBOCOPY終了
EXIT /b %ERRORLEVEL%
bbbbb
00_CopyGEN.vbs
MYFILE = "D:\admtools\test\00_CopySKEL.bat"
'Option Explicit
On Error Resume Next
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile("00_CopyGEN.INI")
'Set objFile = objFSO.OpenTextFile(MYFILE)
If Err.Number = 0 Then
Do While objFile.AtEndOfStream <> True
'WScript.Echo objFile.ReadLine
CHWORD = objFile.ReadLine
'CHWORD = "AAAA"
OFILE = CHWORD
Call CreateBatch(MYFILE,CHWORD,OFILE)
Loop
objFile.Close
Else
WScript.Echo "ファイルオープンエラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objFile = Nothing
Set objFSO = Nothing
Sub CreateBatch(MYFILE, CHWORD, OFILE)
'テキストファイルのフルパス
Dim myA(9) : Dim myB(9)
myA(0) = "####" : myB(0) = CHWORD
myA(2) = "" : myB(2) = ""
myA(3) = "" : myB(3) = ""
myA(4) = "" : myB(4) = ""
myA(5) = "" : myB(5) = ""
myA(6) = "" : myB(6) = ""
myA(7) = "" : myB(7) = ""
myA(8) = "" : myB(8) = ""
myA(9) = "" : myB(9) = ""
'「A.変更前」と「B.変更後」を指定する
'消去なら「""」
'置換なら「"置換するものを書く"」
'---------------------------------
With CreateObject("Scripting.FileSystemObject")
With .GetFile(MYFILE).OpenAsTextStream
myALLData = .ReadAll
.Close
End With
'---------------------------------
For j = 0 To UBound(myA)
If myA(j) <> "" Then _
myALLData = Replace(myALLData, myA(j), myB(j))
Next
'---------------------------------
myFLD = .GetFile(MYFILE).ParentFolder & "\"
myExt = "." & .GetExtensionName(MYFILE)
myName = myFLD & .GetBaseName(MYFILE)
myName = OFILE
Do
i = i + 1
MYFILE2 = myName & "(" & i & ")" & myExt
If Not .FileExists(MYFILE2) Then Exit Do
Loop
'---------------------------------
With .OpenTextFile(MYFILE2, 2, True)
.Write myALLData
.Close
End With
End With
End Sub
Msgbox "END"
'Option Explicit
On Error Resume Next
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile("00_CopyGEN.INI")
'Set objFile = objFSO.OpenTextFile(MYFILE)
If Err.Number = 0 Then
Do While objFile.AtEndOfStream <> True
'WScript.Echo objFile.ReadLine
CHWORD = objFile.ReadLine
'CHWORD = "AAAA"
OFILE = CHWORD
Call CreateBatch(MYFILE,CHWORD,OFILE)
Loop
objFile.Close
Else
WScript.Echo "ファイルオープンエラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objFile = Nothing
Set objFSO = Nothing
Sub CreateBatch(MYFILE, CHWORD, OFILE)
'テキストファイルのフルパス
Dim myA(9) : Dim myB(9)
myA(0) = "####" : myB(0) = CHWORD
myA(2) = "" : myB(2) = ""
myA(3) = "" : myB(3) = ""
myA(4) = "" : myB(4) = ""
myA(5) = "" : myB(5) = ""
myA(6) = "" : myB(6) = ""
myA(7) = "" : myB(7) = ""
myA(8) = "" : myB(8) = ""
myA(9) = "" : myB(9) = ""
'「A.変更前」と「B.変更後」を指定する
'消去なら「""」
'置換なら「"置換するものを書く"」
'---------------------------------
With CreateObject("Scripting.FileSystemObject")
With .GetFile(MYFILE).OpenAsTextStream
myALLData = .ReadAll
.Close
End With
'---------------------------------
For j = 0 To UBound(myA)
If myA(j) <> "" Then _
myALLData = Replace(myALLData, myA(j), myB(j))
Next
'---------------------------------
myFLD = .GetFile(MYFILE).ParentFolder & "\"
myExt = "." & .GetExtensionName(MYFILE)
myName = myFLD & .GetBaseName(MYFILE)
myName = OFILE
Do
i = i + 1
MYFILE2 = myName & "(" & i & ")" & myExt
If Not .FileExists(MYFILE2) Then Exit Do
Loop
'---------------------------------
With .OpenTextFile(MYFILE2, 2, True)
.Write myALLData
.Close
End With
End With
End Sub
Msgbox "END"
2014年5月16日金曜日
GEN
'GEN_CTL.vbs
MYSKEL = "D:\admtools\test\GEN_CTL.BAT"
INFILE = "GEN_CTL.INI"
OUTFILE = "GEN_CTL.txt"
'Option Explicit
On Error Resume Next
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Dim objFile2 ' ファイル書き込み用
Dim INFILE_Batch_Name ' バッチ名(フォルダ名)
Dim Batch_File_Name ' バッチファイル名
Dim iNo
dim YYYYMMDD
dim Time_edit
dim HHMMSS
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile(INFILE)
If Err.Number = 0 Then
Set objFSO2 = WScript.CreateObject("Scripting.FileSystemObject")
OUTFILE = OUTFILE & SYORI_JIKAN()
msgbox OUTFILE
Set objFile2 = objFSO2.OpenTextFile(OUTFILE, 2, True)
HaedoutOut(objFile2)
iNo=1
Do While objFile.AtEndOfStream <> True
INFILE_Batch_Name= objFile.ReadLine
Batch_File_Name = INFILE_Batch_Name & ".bat"
objFile2.WriteLine("REM *--------------------------------------------*")
objFile2.WriteLine("call " & Batch_File_Name)
objFile2.WriteLine(SYORI_JIKAN)
objFile2.WriteLine("if not " & "%ERRORLEVEL%" & " == 0 GOTO ERR" & iNo)
objFile2.WriteLine(" echo " & """ END """)
objFile2.WriteLine(SYORI_JIKAN)
objFile2.WriteLine(" GOTO OK" & iNo)
objFile2.WriteLine(":ERR" & iNo)
objFile2.WriteLine(" echo " & """ ABEND """ & " %ERRORLEVEL% ")
objFile2.WriteLine(SYORI_JIKAN)
objFile2.WriteLine(":OK" & iNo)
iNo = iNo + 1
Loop
TrailoutOut(objFile2)
objFile.Close
objFile2.Close
Else
WScript.Echo " FILE OPEN ERROR: " & INFILE & Err.Description
End If
Else
WScript.Echo "ERROR: " & Err.Description
End If
Set objFile = Nothing
Set objFile2 = Nothing
Set objFSO = Nothing
Set objFSO2 = Nothin
'*************************************************************
'* Current time
'*************************************************************
Function SYORI_JIKAN()
dim YYYYMMDD
dim Time_edit
dim HHMMSS
YYYYMMDD="%date:~0,4%%date:~5,2%%date:~8,2%"
echo YYYYMMDD
Time_edit="%time: =0%"
HHMMSS="%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%"
Msgbox YYYYMMDD & HHMMSS
SYORI_JIKAN = now
SYORI_JIKAN = "XRETURN"
End Function
'*************************************************************
'* Generate Batch Head Statement
'*************************************************************
Sub HaedoutOut(objFile2)
objFile2.WriteLine("REM **********************************************")
objFile2.WriteLine("REM ** HEADER RECORD *****************************")
objFile2.WriteLine("REM **********************************************")
dim YYYYMMDD
dim Time_edit
dim HHMMSS
objFile2.WriteLine(":開始")
objFile2.WriteLine("@echo off")
objFile2.WriteLine("COPY_TOPIC=移行")
objFile2.WriteLine("COPY_NAME=####")
objFile2.WriteLine("COPY_LOG_DIR=d:\admtools\log")
YYYYMMDD="%date:~0,4%%date:~5,2%%date:~8,2%"
Time_edit="%time: =0%"
HHMMSS="%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%"
objFile2.WriteLine(YYYYMMDD)
objFile2.WriteLine(Time_edit)
objFile2.WriteLine(HHMMSS)
End Sub
'*************************************************************
'* Generate Batch Trail Statement
'*************************************************************
Sub TrailoutOut(objFile2)
objFile2.WriteLine("REM **********************************************")
objFile2.WriteLine("REM ** TRAILER RECORD ****************************")
objFile2.WriteLine("REM **********************************************")
End Sub
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
GEN_CTL.INI
GEN1
GEN2
2014年5月12日月曜日
ROBOCOPY 生成
MYFILE = "D:\admtools\test\CopySKEL.bat"
'Option Explicit
On Error Resume Next
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile("DIRINFO.txt")
If Err.Number = 0 Then
Do While objFile.AtEndOfStream <> True
CHWORD = objFile.ReadLine
OFILE = CHWORD
Call CreateBatch(MYFILE,CHWORD,OFILE)
Loop
objFile.Close
Else
WScript.Echo "ファイルオープンエラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objFile = Nothing
Set objFSO = Nothing
Sub CreateBatch(MYFILE, CHWORD, OFILE)
'テキストファイルのフルパス
Dim myA(9) : Dim myB(9)
myA(0) = "####" : myB(0) = CHWORD
myA(2) = "" : myB(2) = ""
myA(3) = "" : myB(3) = ""
myA(4) = "" : myB(4) = ""
myA(5) = "" : myB(5) = ""
myA(6) = "" : myB(6) = ""
myA(7) = "" : myB(7) = ""
myA(8) = "" : myB(8) = ""
myA(9) = "" : myB(9) = ""
'「A.変更前」と「B.変更後」を指定する
'消去なら「""」
'置換なら「"置換するものを書く"」
'---------------------------------
With CreateObject("Scripting.FileSystemObject")
With .GetFile(MYFILE).OpenAsTextStream
myALLData = .ReadAll
.Close
End With
'---------------------------------
For j = 0 To UBound(myA)
If myA(j) <> "" Then _
myALLData = Replace(myALLData, myA(j), myB(j))
Next
'---------------------------------
myFLD = .GetFile(MYFILE).ParentFolder & "\"
myExt = "." & .GetExtensionName(MYFILE)
myName = myFLD & .GetBaseName(MYFILE)
myName = OFILE
Do
i = i + 1
MYFILE2 = myName & "(" & i & ")" & myExt
If Not .FileExists(MYFILE2) Then Exit Do
Loop
'---------------------------------
With .OpenTextFile(MYFILE2, 2, True)
.Write myALLData
.Close
End With
End With
End Sub
Msgbox " END "
'Option Explicit
On Error Resume Next
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル読み込み用
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
Set objFile = objFSO.OpenTextFile("DIRINFO.txt")
If Err.Number = 0 Then
Do While objFile.AtEndOfStream <> True
CHWORD = objFile.ReadLine
OFILE = CHWORD
Call CreateBatch(MYFILE,CHWORD,OFILE)
Loop
objFile.Close
Else
WScript.Echo "ファイルオープンエラー: " & Err.Description
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objFile = Nothing
Set objFSO = Nothing
Sub CreateBatch(MYFILE, CHWORD, OFILE)
'テキストファイルのフルパス
Dim myA(9) : Dim myB(9)
myA(0) = "####" : myB(0) = CHWORD
myA(2) = "" : myB(2) = ""
myA(3) = "" : myB(3) = ""
myA(4) = "" : myB(4) = ""
myA(5) = "" : myB(5) = ""
myA(6) = "" : myB(6) = ""
myA(7) = "" : myB(7) = ""
myA(8) = "" : myB(8) = ""
myA(9) = "" : myB(9) = ""
'「A.変更前」と「B.変更後」を指定する
'消去なら「""」
'置換なら「"置換するものを書く"」
'---------------------------------
With CreateObject("Scripting.FileSystemObject")
With .GetFile(MYFILE).OpenAsTextStream
myALLData = .ReadAll
.Close
End With
'---------------------------------
For j = 0 To UBound(myA)
If myA(j) <> "" Then _
myALLData = Replace(myALLData, myA(j), myB(j))
Next
'---------------------------------
myFLD = .GetFile(MYFILE).ParentFolder & "\"
myExt = "." & .GetExtensionName(MYFILE)
myName = myFLD & .GetBaseName(MYFILE)
myName = OFILE
Do
i = i + 1
MYFILE2 = myName & "(" & i & ")" & myExt
If Not .FileExists(MYFILE2) Then Exit Do
Loop
'---------------------------------
With .OpenTextFile(MYFILE2, 2, True)
.Write myALLData
.Close
End With
End With
End Sub
Msgbox " END "
ROBOCOPY SKEL
:開始
@echo off
REM =============環境に応じて、修正してください。=====================================
set COPY_TOPIC=移行
set COPY_NAME=####
set COPY_SRC_DIR=d:\test\####
set COPY_DST_DIR=d:\testd\####
set COPY_LOG_DIR=d:\admtools\log
REM ==================================================================================
set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
set Time_edit=%time: =0%
set HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%
set Copy_options=/COPY:DATSO /MIR
set Excludes_files="" ""
set Excludes_directories="" "" ""
set File_selection_options=
set Retry_options=/R:0 /W:1
set Log_file="%COPY_LOG_DIR%\%COPY_TOPIC%_%COPY_NAME%_%YYYYMMDD%_%HHMMSS%.log"
rem set Logging_options=/TEE /LOG:%Log_file%
rem set Logging_options=/TEE /FP /LOG:%Log_file%
rem set Logging_options=/TEE /X /FP /LOG:%Log_file%
set Logging_options=/TEE /V /X /FP /LOG:%Log_file%
set Source="%COPY_SRC_DIR%"
set Destination="%COPY_DST_DIR%"
REM set File=*.*
set Options=%Copy_options% %File_selection_options% %Retry_options% %Logging_options%
:: 自動生成した、ROBOCOPY実行コマンドを画面表示で確認する
echo.
echo ↓↓↓↓↓ 自動生成した、ROBOCOPY実行コマンド ここから ↓↓↓↓↓
echo.
echo robocopy.exe %Source% %Destination% %Options%
echo.
echo ↑↑↑↑↑ 自動生成した、ROBOCOPY実行コマンド ここまで ↑↑↑↑↑
set Console_input=""
echo.
echo ******************************************************************************
echo *
echo * 重要!! バッチ処理実行確認
echo * トピック :%COPY_TOPIC%
echo * 移行フォルダ :%COPY_NAME%
echo * コピー元 :%COPY_SRC_DIR%
echo * コピー先 :%COPY_DST_DIR%
echo * 移行ログパス :%COPY_LOG_DIR%
echo * 移行ログ名前 :%Log_file%
echo *
echo * 自動生成した、ROBOCOPY実行コマンドを確認し、処理続行選択について、
echo * 以下のように入力してください(大文字と小文字は区別しません)。
echo *
echo * start :ROBOCOPYの実行を開始します
echo * quit :ROBOCOPYの実行を中止し、当バッチ処理を打ち切ります
echo * 上記以外の文字列 :当バッチ処理の先頭に戻ります
echo * (ログファイル名の日時も更新されます)
echo *
echo ******************************************************************************
echo.
set /P Console_input="処理続行選択(上記参照) : "
if /I "%Console_input%"=="quit" exit
if /I "%Console_input%"=="start" goto ROBOCOPY実行
goto 開始
pause
:ROBOCOPY実行
REM ★★★デイレクリがなければ作成する。
mkdir %COPY_DST_DIR%\%COPY_NAME%
robocopy.exe %Source% %Destination% %Options%
pause
rem exit
@echo off
REM =============環境に応じて、修正してください。=====================================
set COPY_TOPIC=移行
set COPY_NAME=####
set COPY_SRC_DIR=d:\test\####
set COPY_DST_DIR=d:\testd\####
set COPY_LOG_DIR=d:\admtools\log
REM ==================================================================================
set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
set Time_edit=%time: =0%
set HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%
set Copy_options=/COPY:DATSO /MIR
set Excludes_files="" ""
set Excludes_directories="" "" ""
set File_selection_options=
set Retry_options=/R:0 /W:1
set Log_file="%COPY_LOG_DIR%\%COPY_TOPIC%_%COPY_NAME%_%YYYYMMDD%_%HHMMSS%.log"
rem set Logging_options=/TEE /LOG:%Log_file%
rem set Logging_options=/TEE /FP /LOG:%Log_file%
rem set Logging_options=/TEE /X /FP /LOG:%Log_file%
set Logging_options=/TEE /V /X /FP /LOG:%Log_file%
set Source="%COPY_SRC_DIR%"
set Destination="%COPY_DST_DIR%"
REM set File=*.*
set Options=%Copy_options% %File_selection_options% %Retry_options% %Logging_options%
:: 自動生成した、ROBOCOPY実行コマンドを画面表示で確認する
echo.
echo ↓↓↓↓↓ 自動生成した、ROBOCOPY実行コマンド ここから ↓↓↓↓↓
echo.
echo robocopy.exe %Source% %Destination% %Options%
echo.
echo ↑↑↑↑↑ 自動生成した、ROBOCOPY実行コマンド ここまで ↑↑↑↑↑
set Console_input=""
echo.
echo ******************************************************************************
echo *
echo * 重要!! バッチ処理実行確認
echo * トピック :%COPY_TOPIC%
echo * 移行フォルダ :%COPY_NAME%
echo * コピー元 :%COPY_SRC_DIR%
echo * コピー先 :%COPY_DST_DIR%
echo * 移行ログパス :%COPY_LOG_DIR%
echo * 移行ログ名前 :%Log_file%
echo *
echo * 自動生成した、ROBOCOPY実行コマンドを確認し、処理続行選択について、
echo * 以下のように入力してください(大文字と小文字は区別しません)。
echo *
echo * start :ROBOCOPYの実行を開始します
echo * quit :ROBOCOPYの実行を中止し、当バッチ処理を打ち切ります
echo * 上記以外の文字列 :当バッチ処理の先頭に戻ります
echo * (ログファイル名の日時も更新されます)
echo *
echo ******************************************************************************
echo.
set /P Console_input="処理続行選択(上記参照) : "
if /I "%Console_input%"=="quit" exit
if /I "%Console_input%"=="start" goto ROBOCOPY実行
goto 開始
pause
:ROBOCOPY実行
REM ★★★デイレクリがなければ作成する。
mkdir %COPY_DST_DIR%\%COPY_NAME%
robocopy.exe %Source% %Destination% %Options%
pause
rem exit
2014年5月11日日曜日
copy2 計画
■実績値
約20G 90分 5,521,643Byte/S 315.950MB/分 -> 5392.229KB/S = 42.1Mb/s
■QOS設定
12800KBps = 100Mbps
→ 30Mb/s -> 3840 KBps
→ 50Mb/s -> 6400 KBps
→ 70Mb/s -> 8960 KBps
-------------------------------------------------------------------------------
5/13 ●帯域制限テスト
2CPU(2048 * 2 GHz)
実データの一部(20G)
・30M/s (2度実施)
・50M/s (2度実施)
・70M/s (2度実施)
-------------------------------------------------------------------------------
5/14 ●多重実行テスト
2CPU(1024*2GHz)
・1JOB
・2JOB
・4JOB
-------------------------------------------------------------------------------
5/15 ●CPU増加テスト
4CPU(2048GHz)
・1JOB
・2JOB
・4JOB
-------------------------------------------------------------------------------
●報告後、100G程度から
実データをスケジュールに従い実行
開始時刻、コピーデータサイズ、想定時間、逐次実行
copy
●Rrobocopyオプション
■ /DCOPY:T ディレクトリタイムスタンプをコピーする
指定した場合、コピー元のフォルダ日付のままコピーされるのを確認済であるが、
指定しない場合、コピー日の日付けになるがよいか。
■ ログオプションで通常表示を省略した時の表示を確認する
/V を指定しない場合、結果ログに表示される "同じ"は、表示されなくなった。(/V:スキップされたファイルは表示されない)
/X を指定しない場合でも追加分は表示されるのは正しいか?
/FP を指定しない場合でも、フルパスの結果が表示される。?
---------------------------------------------------------------------------------
■ショートカットファイル(.lnk)は、コピーされるが、そのショートカットファイル指定のリンク先のファイルはコピーされないことを確認 → 済
■ファイル内の文書からはハイパーリンクされている、外部ファイルはコピー対象とならない。→ 済
■オープン中のファイル内の文書からはハイパーリンクされている、外部ファイルはコピー対象とならない。
.lockファイルも同時にコピーされるが、移送後にオープンできる(SAVE前の状態)。→ 済
===================================================================================
★Qos設定テストしたサーバのパラメータシートを参考にすること
・Qosの設定単位は、xx MB/s (Mega Bytes) 1k=1024
・停止して反映必要か?
***********************************************************************************
***********************************************************************************
***********************************************************************************
3840 KBps = 3840/1024 *8 = 30Mbs
6400 KBps = 6400/1024 *8 = 50Mbs
8960 KBps = 3840/1024 *8 = 70Mbs
12800 KBps = 12800/1024 *8 = 100Mbs
===================================================================================
2014年5月7日水曜日
ROBO URL
http://www.atmarkit.co.jp/ait/articles/1309/27/news116.html
http://jp.fujitsu.com/platform/server/primergy/software/windows/technical/tips/w2008/w2008-01-02.html
http://d.hatena.ne.jp/kerorogunsou/20081204/1228394516
http://jyo-sis.seesaa.net/archives/201201-1.html
http://jp.fujitsu.com/platform/server/primergy/software/windows/technical/tips/w2008/w2008-01-02.html
http://d.hatena.ne.jp/kerorogunsou/20081204/1228394516
http://jyo-sis.seesaa.net/archives/201201-1.html
ROBOCOPY結果
開始: 2014年5月6日 20:47:31
新しいファイル コピー済み
合計 コピー済み スキップ 不一致 失敗 Extras
ディレクトリ: 455 455 455 0 0 0
ファイル: 8119 8119 0 0 0 0
バイト: 1.300 g 1.300 g 0 0 0 0
時刻: 0:16:49 0:03:36 0:00:00 0:01:38
終了: 2014年5月6日 20:52:46
終了: 2014年5月6日 20:52:46
---------------------------------------------------------------------------------------------------------------------------------
開始: 2014年5月6日 21:00:48
*EXTRA File 0 f:\趣味\f.txt
新しいファイル 0 d:\趣味\d.txt
合計 コピー済み スキップ 不一致 失敗 Extras
ディレクトリ: 455 455 0 0 0 0
ファイル: 8120 1 8119 0 0 1
バイト: 1.300 g 0 1.300 g 0 0 0
時刻: 0:14:37 0:00:00 0:00:00 0:14:37
終了: 2014年5月6日 21:15:26
終了: 2014年5月6日 21:15:26
---------------------------------------------------------------------------------------------------------------------------------
開始: 2014年5月6日 20:42:06
同じ
終了: 2014年5月6日 21:56:40
---------------------------------------------------------------------------------------------------------------------------------
新しいファイル コピー済み
合計 コピー済み スキップ 不一致 失敗 Extras
ディレクトリ: 455 455 455 0 0 0
ファイル: 8119 8119 0 0 0 0
バイト: 1.300 g 1.300 g 0 0 0 0
時刻: 0:16:49 0:03:36 0:00:00 0:01:38
終了: 2014年5月6日 20:52:46
終了: 2014年5月6日 20:52:46
---------------------------------------------------------------------------------------------------------------------------------
開始: 2014年5月6日 21:00:48
*EXTRA File 0 f:\趣味\f.txt
新しいファイル 0 d:\趣味\d.txt
合計 コピー済み スキップ 不一致 失敗 Extras
ディレクトリ: 455 455 0 0 0 0
ファイル: 8120 1 8119 0 0 1
バイト: 1.300 g 0 1.300 g 0 0 0
時刻: 0:14:37 0:00:00 0:00:00 0:14:37
終了: 2014年5月6日 21:15:26
終了: 2014年5月6日 21:15:26
---------------------------------------------------------------------------------------------------------------------------------
開始: 2014年5月6日 20:42:06
同じ
終了: 2014年5月6日 21:56:40
---------------------------------------------------------------------------------------------------------------------------------
ROBO
:開始
@echo off
set Name=
set Source_directory=d:\趣味
set Destination_directory=d:\testd
set Log_directory=d:\admtools\log
set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
set Time_edit=%time: =0%
set HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%
set Copy_options=/COPY:DATS /MIR /MT:8
set Excludes_files="" ""
set Excludes_directories="" "" ""
set File_selection_options=
set Retry_options=/R:0 /W:1
set Log_file="%Log_directory%\%Name%_%YYYYMMDD%_%HHMMSS%.log"
set Logging_options=/TEE /V /X /FP /LOG:%Log_file%
set Source="%Source_directory%"
set Destination="%Destination_directory%"
REM set File=*.*
set Options=%Copy_options% %File_selection_options% %Retry_options% %Logging_options%
:: 自動生成した、ROBOCOPY実行コマンドを画面表示で確認する
echo.
echo ↓↓↓↓↓ 自動生成した、ROBOCOPY実行コマンド ここから ↓↓↓↓↓
echo.
echo robocopy.exe %Source% %Destination% %Options%
echo.
echo ↑↑↑↑↑ 自動生成した、ROBOCOPY実行コマンド ここまで ↑↑↑↑↑
set Console_input=""
echo.
echo ******************************************************************************
echo * *
echo * 重要!! バッチ処理実行確認 *
echo * *
echo * 自動生成した、ROBOCOPY実行コマンドを確認し、処理続行選択について、 *
echo * 以下のように入力してください(大文字と小文字は区別しません)。 *
echo * *
echo * start :ROBOCOPYの実行を開始します *
echo * quit :ROBOCOPYの実行を中止し、当バッチ処理を打ち切ります *
echo * 上記以外の文字列 :当バッチ処理の先頭に戻ります *
echo * (ログファイル名の日時も更新されます) *
echo * *
echo ******************************************************************************
echo.
set /P Console_input="処理続行選択(上記参照) : "
if /I "%Console_input%"=="quit" exit
if /I "%Console_input%"=="start" goto ROBOCOPY実行
goto 開始
pause
:ROBOCOPY実行
robocopy.exe %Source% %Destination% %Options%
pause
exit
@echo off
set Name=
set Source_directory=d:\趣味
set Destination_directory=d:\testd
set Log_directory=d:\admtools\log
set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2%
set Time_edit=%time: =0%
set HHMMSS=%Time_edit:~0,2%%Time_edit:~3,2%%Time_edit:~6,2%
set Copy_options=/COPY:DATS /MIR /MT:8
set Excludes_files="" ""
set Excludes_directories="" "" ""
set File_selection_options=
set Retry_options=/R:0 /W:1
set Log_file="%Log_directory%\%Name%_%YYYYMMDD%_%HHMMSS%.log"
set Logging_options=/TEE /V /X /FP /LOG:%Log_file%
set Source="%Source_directory%"
set Destination="%Destination_directory%"
REM set File=*.*
set Options=%Copy_options% %File_selection_options% %Retry_options% %Logging_options%
:: 自動生成した、ROBOCOPY実行コマンドを画面表示で確認する
echo.
echo ↓↓↓↓↓ 自動生成した、ROBOCOPY実行コマンド ここから ↓↓↓↓↓
echo.
echo robocopy.exe %Source% %Destination% %Options%
echo.
echo ↑↑↑↑↑ 自動生成した、ROBOCOPY実行コマンド ここまで ↑↑↑↑↑
set Console_input=""
echo.
echo ******************************************************************************
echo * *
echo * 重要!! バッチ処理実行確認 *
echo * *
echo * 自動生成した、ROBOCOPY実行コマンドを確認し、処理続行選択について、 *
echo * 以下のように入力してください(大文字と小文字は区別しません)。 *
echo * *
echo * start :ROBOCOPYの実行を開始します *
echo * quit :ROBOCOPYの実行を中止し、当バッチ処理を打ち切ります *
echo * 上記以外の文字列 :当バッチ処理の先頭に戻ります *
echo * (ログファイル名の日時も更新されます) *
echo * *
echo ******************************************************************************
echo.
set /P Console_input="処理続行選択(上記参照) : "
if /I "%Console_input%"=="quit" exit
if /I "%Console_input%"=="start" goto ROBOCOPY実行
goto 開始
pause
:ROBOCOPY実行
robocopy.exe %Source% %Destination% %Options%
pause
exit
2014年4月30日水曜日
scp
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
# yum install /lib/ld-linux.so.2
# yum install libncursesw.so.5
================================================================
= SCP Command S -> T send
================================================================
[root@sfzod62 tmp]■# scp sfzod62:/tmp/sfzod62.txt sfzoa62:/tmp/sfzod62.txt
root@sfzod62's password:
root@sfzoa62's password:
sfzod62.txt 100% 0 0.0KB/s 00:00
Connection to sfzod62 closed.
[root@sfzod62 tmp]#
================================================================
[root@sfzod62 tmp
================================================================
= SCP Command S -> T receive
■scp sfzoa62:/tmp/sfzoa62.txt sfzod62:/tmp/sfzoa62.txt
root@sfzod62's password:
root@sfzoa62's password:
sfzod62.txt 100% 0 0.0KB/s 00:00
Connection to sfzod62 closed.
[root@sfzod62 tmp]#
-------------------------------------------------------------------
PostgreSQLのログ アーカイブ ジャーナル フルになったら
■history
history -c
■プロファイル
[root@sfzoa62 logrotate.d]# su - draftmaster
[draftmaster@sfzoa62 ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
[draftmaster@sfzoa62 ~]$
■アプリからDB接続
■Postgres9.3 JDBC Driver CEntOS6.4 Tomcat7
■テーブルスペースのサイズと、空き容量を確認する
コンプレスする方法は?
■アーカイブ指定する方法は?
■バックアップの指定は?
\\\\
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
DB ERROR
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
VCDS
[root@sfzod62 ~]#
[root@sfzod62 ~]# cat /var/lib/pgsql/9.3/data/postgresql.conf | grep archi
#wal_level = minimal # minimal, archive, or hot_standby
#archive_mode = off # allows archiving to be done
#archive_command = '' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0 # force a logfile segment switch after this
#max_standby_archive_delay = 30s # max delay before canceling queries
# when reading WAL from archive;
[root@sfzod62 ~]#
ーーーーーーーーーーーーーーーーーーーーーーーー
[root@sfzoa62 tomcat]# pwd
/data/apdata/log/tomcat
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
/var/lib/pgsql/9.3/data/pg_log
■# yum install uuid
*********************************************************************************
*
* http://www.unixmen.com/install-postgresql-9-3-centos-6-56-4/
*
*********************************************************************************
■# yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm - See more at: http://
www.unixmen.com/install-postgresql-9-3-centos-6-56-4/#sthash.xC361Pfu.dpuf
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: ftp.jaist.ac.jp
* extras: ftp.jaist.ac.jp
* updates: ftp.jaist.ac.jp
Setting up Install Process
pgdg-redhat93-9.3-1.noarch.rpm | 5.1 kB 00:00
Examining /var/tmp/yum-root-qjTmbu/pgdg-redhat93-9.3-1.noarch.rpm: pgdg-redhat93-9.3-1.noarch
Marking /var/tmp/yum-root-qjTmbu/pgdg-redhat93-9.3-1.noarch.rpm to be installed
No package See available.
No package more available.
No package at: available.
No package http://www.unixmen.com/install-postgresql-9-3-centos-6-56-4/#sthash.xC361Pfu.dpuf available.
Resolving Dependencies
--> Running transaction check
---> Package pgdg-redhat93.noarch 0:9.3-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
pgdg-redhat93 noarch 9.3-1 /pgdg-redhat93-9.3-1.noarch 2.1 k
Transaction Summary
================================================================================
Install 1 Package(s)
Total size: 2.1 k
Installed size: 2.1 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : pgdg-redhat93-9.3-1.noarch 1/1
Verifying : pgdg-redhat93-9.3-1.noarch 1/1
Installed:
pgdg-redhat93.noarch 0:9.3-1
Complete!
*********************************************************************************
■# yum install postgresql93-server postgresql93-contrib - See more at: http://www.unixmen.com/install-postgresql-9-3-
centos-6-56-4/#sthash.xC361Pfu.dpuf
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: ftp.jaist.ac.jp
* extras: ftp.jaist.ac.jp
* updates: ftp.jaist.ac.jp
Setting up Install Process
No package See available.
No package more available.
No package at: available.
No package http://www.unixmen.com/install-postgresql-9-3-centos-6-56-4/#sthash.xC361Pfu.dpuf available.
Resolving Dependencies
--> Running transaction check
---> Package postgresql93-contrib.x86_64 0:9.3.4-1PGDG.rhel6 will be installed
--> Processing Dependency: postgresql93 = 9.3.4 for package: postgresql93-contrib-9.3.4-1PGDG.rhel6.x86_64
--> Processing Dependency: libpq.so.5()(64bit) for package: postgresql93-contrib-9.3.4-1PGDG.rhel6.x86_64
---> Package postgresql93-server.x86_64 0:9.3.4-1PGDG.rhel6 will be installed
--> Running transaction check
---> Package postgresql93.x86_64 0:9.3.4-1PGDG.rhel6 will be installed
---> Package postgresql93-libs.x86_64 0:9.3.4-1PGDG.rhel6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
postgresql93-contrib x86_64 9.3.4-1PGDG.rhel6 pgdg93 483 k
postgresql93-server x86_64 9.3.4-1PGDG.rhel6 pgdg93 4.1 M
Installing for dependencies:
postgresql93 x86_64 9.3.4-1PGDG.rhel6 pgdg93 1.0 M
postgresql93-libs x86_64 9.3.4-1PGDG.rhel6 pgdg93 190 k
Transaction Summary
================================================================================
Install 4 Package(s)
Total download size: 5.7 M
Installed size: 23 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): postgresql93-9.3.4-1PGDG.rhel6.x86_64.rpm | 1.0 MB 00:05
(2/4): postgresql93-contrib-9.3.4-1PGDG.rhel6.x86_64.rpm | 483 kB 00:01
(3/4): postgresql93-libs-9.3.4-1PGDG.rhel6.x86_64.rpm | 190 kB 00:00
(4/4): postgresql93-server-9.3.4-1PGDG.rhel6.x86_64.rpm | 4.1 MB 00:06
--------------------------------------------------------------------------------
Total 402 kB/s | 5.7 MB 00:14
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : postgresql93-libs-9.3.4-1PGDG.rhel6.x86_64 1/4
Installing : postgresql93-9.3.4-1PGDG.rhel6.x86_64 2/4
Installing : postgresql93-contrib-9.3.4-1PGDG.rhel6.x86_64 3/4
Installing : postgresql93-server-9.3.4-1PGDG.rhel6.x86_64 4/4
Verifying : postgresql93-libs-9.3.4-1PGDG.rhel6.x86_64 1/4
Verifying : postgresql93-contrib-9.3.4-1PGDG.rhel6.x86_64 2/4
Verifying : postgresql93-server-9.3.4-1PGDG.rhel6.x86_64 3/4
Verifying : postgresql93-9.3.4-1PGDG.rhel6.x86_64 4/4
Installed:
postgresql93-contrib.x86_64 0:9.3.4-1PGDG.rhel6
postgresql93-server.x86_64 0:9.3.4-1PGDG.rhel6
Dependency Installed:
postgresql93.x86_64 0:9.3.4-1PGDG.rhel6
postgresql93-libs.x86_64 0:9.3.4-1PGDG.rhel6
Complete!
#
**************************************************************************
* status/ stop / start
**************************************************************************
■# /etc/rc.d/init.d/postgresql-9.3 status
postgresql-9.3 (pid 7335) を実行中...
■# /etc/rc.d/init.d/postgresql-9.3 stop
postgresql-9.3 サービスを停止中: [ OK ]
■# /etc/rc.d/init.d/postgresql-9.3 start
postgresql-9.3 サービスを開始中: [ OK ]
#
**************************************************************************
* Initialize the database:
**************************************************************************
■# service postgresql-9.3 initdb
データベースを初期化中: [ OK ]
#
**************************************************************************
* Make it bootable on start:
**************************************************************************
■# chkconfig postgresql-9.3 on
#
**************************************************************************
* Allow remote access from all:
**************************************************************************
■# vi /var/lib/pgsql/9.3/data/postgresql.conf
listen_addresses = '*'
■# vi /var/lib/pgsql/9.3/data/pg_hba.conf
host all all 0.0.0.0/0 md5
■# /etc/init.d/postgresql-9.3 reload
**************************************************************************
* Start the server, check if its running and listening:
**************************************************************************
■# /etc/init.d/postgresql-9.3 start
postgresql-9.3 サービスを開始中: [ OK ]
■# netstat -an | grep 543
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp 0 0 ::1:5432 :::* LISTEN
unix 2 [ ACC ] STREAM LISTENING 29677 /tmp/.s.PGSQL.5432
unix 3 [ ] STREAM CONNECTED 15543
**************************************************************************
* Allow Postgresql in The firewall
**************************************************************************
■# vi /etc/sysconfig/iptables
Add line:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
and now restart iptables
■# service iptables restart
iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ]
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: モジュールを取り外し中: [ OK ]
iptables: ファイアウォールルールを適用中: [ OK ]
#
**************************************************************************
* Create user and database in Postgresql
**************************************************************************
■# su - postgres
-bash-4.1$
■$ createuser user1
■$ createdb db1
- Set password and Grant access to the database db1 for user1: --
$ psql
psql (9.3.4)
postgres=# Type "help" for help
postgres=#alter user user1 with encrypted password 'user1'
postgres-# ALTER ROLE
postgres-# Type "help" for help
postgres=#grant all privileges on database db1 to user1
postgres-# GRANT
postgres-#
******************************************************************************
* http://lets.postgresql.jp/documents/tutorial/centos/2
******************************************************************************
■# id postgres
uid=26(postgres) gid=26(postgres) 所属グループ=26(postgres)
#
■# which psql
/usr/bin/psql
■#/etc/init.d/postgresql-9.3 start
■# psql
***********************************************************************
* Retreive DataBase List
***********************************************************************
■ -bash-4.1$ psql -l
List of database
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+-----------+------------+---------------+---------------+------------
db1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
-bash-4.1$
***********************************************************************
* Connect DataBase
***********************************************************************
■-bash-4.1$ psql db1
psql (9.3.4)
Type "help" for help.
db1=# select version();
version
--------------------------------------------------------------------------------------------------------------
PostgreSQL 9.3.4 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4), 64-bit
(1 row)
■db1=#\q
bash-4.1$
***********************************************************************
* TABLE Define
***********************************************************************
■db1=# CREATE TABLE cus (id INTEGER PRIMARY KEY NOT NULL,name TEXT NOT NULL,cretime TIMESTAMP NOT NULL);
CREATE TABLE
■db1-# \d
List of relations
Schema | Name | Type | Owner
---------+-------+--------+----------
public | cus | table | postgres
(1 row)
db1-#
■db1-# \db+
List of tablespaces
Name | Owner | Location | Access privileges | Description
------------+----------+----------+-------------------+-------------
pg_default | postgres | | |
pg_global | postgres | | |
(2 rows)
db1-#
■db1=# \d cus
Table "public.cus"
Column | Type | Modifiers
----------+----------------------------------+-----------
id | integer | not null
name | text | not null
cretime | timestamp without time zone | not null
Indexes:
"cus_pkey" PRIMARY KEY, btree (id)
db1=#
***********************************************************************
* TABLE DATA INSERT
***********************************************************************
■db1=# BEGIN TRANSACTION;
BEGIN
db1=# INSERT INTO cus VALUES( 1,'Manda',current_timestamp);
INSERT 0 1
db1=# COMMIT;
COMMIT
■db1=# SELECT * FROM cus;
id | name | cretime
-----+--------+----------------------000------
1 | Manda | 2014-04-28 10:59:38.204301
(1 row)
db1=#
***********************************************************************
* psql exit
***********************************************************************
■db1-# \q
bash-4.1$
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ sfzod62 logrotate
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
====================================================================================
= logrotate
= /etc/cron.daily/logrotate
= /usr/sbin/logrotate
= /etc/logrotate.conf
= /etc/logrotate.d/(postgres)
= /var/lib/logrotate.status
====================================================================================
■# cat /etc/logrotate.d/postgres
/var/lib/pgsql/9.3/data/pg_log/*.log {
copytruncate
daily
size 1k
missingok
compress
rotate 2
olddir /var/lib/pgsql/9.3/data/pg_log/dirrotate
# create 0600 postgres postgres
}
#
====================================================================================
■# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate -f /etc/logrotate.conf >/dev/null 2>&1
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
====================================================================================
■# vi /var/lib/pgsql/9.3/data/postgresql.conf
.......
log_filename = 'postgresql.log'
........
■# /etc/init.d/postgresql-9.3 reload
====================================================================================
■# logrotate -f /etc/logrotate.d/postgres
# ls -ltr /var/lib/pgsql/9.3/data/pg_log
-rw------- 1 postgres postgres 0 5月 2 07:01 2014 postgresql.log
drwxr-xr-x 2 root root 4096 5月 2 07:01 2014 dirrotate
#
# ls -ltr /var/lib/pgsql/9.3/data/pg_log/dirrotate
-rw------- 1 postgres postgres 20 5月 2 07:01 2014 postgresql.log.1.gz
-rw------- 1 postgres postgres 20 5月 2 07:00 2014 postgresql.log.2.gz
#
====================================================================================
■# /usr/sbin/logrotate -f /etc/logrotate.conf >/dev/null 2>&1
# /var/lib/logrotate.status
logrotate state -- version 2
"/var/lib/pgsql/9.3/data/pg_log/postgresql.log"
====================================================================================
■# /etc/cron.daily/logrotate
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ sfzod62 tmpwatch
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
■# cat /etc/cron.daily/tmpwatch
#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' 10d /tmp
/usr/sbin/tmpwatch "$flags" 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 30d "$d"
fi
done
#
====================================================================================
= tmpwatch cron 4day ago delete
====================================================================================
■# vi /etc/cron.dailytmpwatch
/usr/sbin/tmpwatch "$flags" 3d /var/lib/pgsql/9.3/data/pg_log/
■# /etc/cron.dailytmpwatch/tmpwatch
# ls -ltr /var/lib/pgsql/9.3/data/pg_log/*.log*
-rw------- 1 postgres postgres 0 4月 29 00:00 2014 /var/lib/pgsql/9.3/data/pg_log/postgresql-Tue.log
-rw------- 1 postgres postgres 0 4月 29 01:27 2014 /var/lib/pgsql/9.3/data/pg_log/postgresql-Sat.log
#
2014年4月25日金曜日
2014年4月21日月曜日
model
[root@sfzoa62 mytest]# cat TA_ajs
#!/bin/bash
# ####################################################################
# # Custom Program ###################################################
# # StartProgram : TA_ajs start
# # StopProgram : TA_ajs stop
# # MonitorProgram : TA_ajs status
# ####################################################################
# --------------------------------------------------------------------#
# when subcase1
# --------------------------------------------------------------------#
subcase1() {
jikan=$(date +'%Y/%m/%d %H:%M:%S')
echo " "
echo "$0 $param $jikan ***************************************"
echo "$0 $param $jikan HOST=$HOSTNAME PWD=$PWD $USER "
#echo "$0 $param $jikan PATH =$PATH "
case "$param" in
start)
/etc/opt/jp1ajs2/jajs_start
RC=$?
ERC=0
;;
stop)
/etc/opt/jp1ajs2/jajs_stop
RC=$?
ERC=0
;;
status)
#sleep 3
/opt/jp1ajs2/bin/jajs_spmd_status
RC=$?
chengerc
ERC=$?
;;
help)
echo "$0 $param $jikan you must enter param start,stop or status "
exit 88
;;
*)
echo "$0 $param $jikan param not fnd start,stop or status "
exit 99
;;
esac
jikan=$(date +'%Y/%m/%d %H:%M:%S')
echo "$0 $param $jikan RC( $RC ) EXIT( $ERC )"
echo " "
exit $ERC
}
# --------------------------------------------------------------------#
# when subcase2
# --------------------------------------------------------------------#
subcase2() {
jikan=$(date +'%Y/%m/%d %H:%M:%S')
echo " "
echo "$0 $param $jikan ======================================="
echo "$0 $param $jikan HOST=$HOSTNAME PWD=$PWD $USER "
LOGFILE=`ls -1 /var/VRTSvcs/log/engine*.log | tail -n 1`
#LOGFILE=`/var/log/messages`
#LOGFILE="/dev/null"
case "$param" in
start)
/etc/opt/jp1ajs2/jajs_start >> ${LOGFILE}
RC=$?
ERC=0
;;
stop)
/etc/opt/jp1ajs2/jajs_stop >> ${LOGFILE}
RC=$?
ERC=0
;;
status)
#sleep 3
/opt/jp1ajs2/bin/jajs_spmd_status >> ${LOGFILE}
RC=$?
chengerc
ERC=$?
;;
help)
echo "$0 $param $jikan you must enter param start,stop or status "
exit 88
;;
*)
echo "$0 $param $jikan param not fnd start,stop or status "
exit 99
;;
esac
jikan=$(date +'%Y/%m/%d %H:%M:%S')
echo "$0 $param $jikan RC( $RC ) EXIT( $ERC ) LOGGING "
echo " "
exit $ERC
}
# --------------------------------------------------------------------#
# chenge return code
# --------------------------------------------------------------------#
chengerc() {
chengerc=0
APPLICATION_IS_ONLINE=110
APPLICATION_IS_OFFLINE=100
#APPLICATION_IS_UNKNOWN=99
if [ $RC -eq 0 ] ; then
chengerc=$APPLICATION_IS_ONLINE
else
chengerc=$APPLICATION_IS_OFFLINE
fi
return $chengerc
}
# ---------------------------------------------------------------------
# Main
# ---------------------------------------------------------------------
LANG=C
LOG_OFF=0
LOG_ON=1
logflg=1
param=$1
if [ $logflg -eq $LOG_OFF ]; then
subcase1
else
subcase2
fi
[root@sfzoa62 mytest]#
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
[root@sfzoa62 mytest]# cat TA_httpd
#!/bin/bash
# ####################################################################
# # Custom Program ###################################################
# # StartProgram : TA_httpd start
# # StopProgram : TA_httpd stop
# # MonitorProgram : TA_httpd status
# ####################################################################
# --------------------------------------------------------------------#
# when subcase1
# --------------------------------------------------------------------#
subcase1() {
jikan=$(date +'%Y/%m/%d %H:%M:%S')
echo " "
echo "$0 $param $jikan ***************************************"
echo "$0 $param $jikan HOST=$HOSTNAME PWD=$PWD $USER "
#echo "$0 $param $jikan PATH =$PATH "
case "$param" in
start)
/etc/init.d/httpd start
RC=$?
ERC=0
;;
stop)
/etc/init.d/httpd stop
RC=$?
ERC=0
;;
status)
#sleep 3
/etc/init.d/httpd status
RC=$?
chengerc
ERC=$?
;;
help)
echo "$0 $param $jikan you must enter param start,stop or status "
exit 88
;;
*)
echo "$0 $param $jikan param not fnd start,stop or status "
exit 99
;;
esac
jikan=$(date +'%Y/%m/%d %H:%M:%S')
echo "$0 $param $jikan RC( $RC ) EXIT( $ERC )"
echo " "
exit $ERC
}
# --------------------------------------------------------------------#
# when subcase2
# --------------------------------------------------------------------#
subcase2() {
jikan=$(date +'%Y/%m/%d %H:%M:%S')
echo " "
echo "$0 $param $jikan ======================================="
echo "$0 $param $jikan HOST=$HOSTNAME PWD=$PWD $USER "
#LOGFILE=`ls -1 /var/VRTSvcs/log/engine*.log | tail -n 1`
#LOGFILE=`/var/log/messages`
LOGFILE="/dev/null"
case "$param" in
start)
/etc/init.d/httpd start >> ${LOGFILE}
RC=$?
ERC=0
;;
stop)
/etc/init.d/httpd stop >> ${LOGFILE}
RC=$?
ERC=0
;;
status)
#sleep 3
/etc/init.d/httpd status >> ${LOGFILE}
RC=$?
chengerc
ERC=$?
;;
help)
echo "$0 $param $jikan you must enter param start,stop or status "
exit 88
;;
*)
echo "$0 $param $jikan param not fnd start,stop or status "
exit 99
;;
esac
jikan=$(date +'%Y/%m/%d %H:%M:%S')
echo "$0 $param $jikan RC( $RC ) EXIT( $ERC ) LOGGING "
echo " "
exit $ERC
}
# --------------------------------------------------------------------#
# chenge return code
# --------------------------------------------------------------------#
chengerc() {
chengerc=0
APPLICATION_IS_ONLINE=110
APPLICATION_IS_OFFLINE=100
#APPLICATION_IS_UNKNOWN=99
if [ $RC -eq 0 ] ; then
chengerc=$APPLICATION_IS_ONLINE
else
chengerc=$APPLICATION_IS_OFFLINE
fi
return $chengerc
}
# ---------------------------------------------------------------------
# Main
# ---------------------------------------------------------------------
LANG=C
LOG_OFF=0
LOG_ON=1
logflg=1
param=$1
if [ $logflg -eq $LOG_OFF ]; then
subcase1
else
subcase2
fi
[root@sfzoa62 mytest]#
2014年4月17日木曜日
ha
■
hacf -verify config_directory
config_directory 変数は、main.cf ファイル、および main.cf に含まれる .cf ファ
イルを格納するディレクトリを指定します。
■
エージェントのランタイム状態を表示
haagent -display [agent]
agent を指定しないと、すべてのエー
■エージェントを起動
haagent -start agent -sys system
■エージェントを停止
haagent -stop agent [-force] -sys system
-force オプションを使えば、エージェントのリソースがオンライン状態でも、そ
のエージェントは停止します。リソースをオフラインにしないでエージェントを
更新する場合は、-force オプションを使います。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
サービスグループの状態を表示するには
hagrp -state [service_groups -sys systems] [-clus cluster |
-localclus]
サービスグループ情報を表示するには
hagrp -display [service_groups] [-attribute attributes]
[-sys systems] [-clus cluster | -localclus]
オプション -clus は、グローバルグループのみに適用
サービスグループコマンドの使用法を表示するには
hagrp [-help [-modify|-link|-list]]
リソースの状態を表示するには
hares -state [resource -sys system] [-clus cluster |
-localclus]
リソースの情報を表示するには
hares -display [resources] [-attribute attributes] [-group
service_groups] [-type types] [-sys systems] [-clus cluster |
-localclus]
リソースのリストを表示するには
hares -list [conditionals] [-clus cluster | -localclus]
リソースコマンドの使用法を表示するには
hares -help [-modify | -list]
hagrp -display service_group
2014年4月14日月曜日
keep
[root@sfzoa62 mytest]# cat keep.sh
#!/bin/bash
APPLICATION_IS_ONLINE=110
APPLICATION_IS_OFFLINE=100
sExit=0
PROCESSNAME="httpd"
echo "****************************************"
echo "*$0 " `date +'%Y/%m/%d %H:%M:%S'` " *"
echo "****************************************"
echo "*PROCESSNAME Dead or Alive "
echo "*PATH =$PATH "
echo "*HOSTNAME=$HOSTNAME "
echo "*PWD =$PWD "
echo "*USER =$USER "
echo "****************************************"
#while true
#do
#
isAlive=`ps -ef | grep $PROCESSNAME | grep -v grep | wc -l`
if [ $isAlive -ge 1 ]; then
echo "* $PROCESSNAME cnt(" $isAlive ")" " -> Alive "
sExit=$APPLICATION_IS_ONLINE
else
echo "* $PROCESSNAME cnt(" $isAlive ")" " -> Dead "
sExit=$APPLICATION_IS_OFFLINE
fi
#sleep 3
#done
echo "* EXIT [ " $sExit " ]"
#exit 0
exit $sExit
[root@sfzoa62 mytest]#
#!/bin/bash
APPLICATION_IS_ONLINE=110
APPLICATION_IS_OFFLINE=100
sExit=0
PROCESSNAME="httpd"
echo "****************************************"
echo "*$0 " `date +'%Y/%m/%d %H:%M:%S'` " *"
echo "****************************************"
echo "*PROCESSNAME Dead or Alive "
echo "*PATH =$PATH "
echo "*HOSTNAME=$HOSTNAME "
echo "*PWD =$PWD "
echo "*USER =$USER "
echo "****************************************"
#while true
#do
#
isAlive=`ps -ef | grep $PROCESSNAME | grep -v grep | wc -l`
if [ $isAlive -ge 1 ]; then
echo "* $PROCESSNAME cnt(" $isAlive ")" " -> Alive "
sExit=$APPLICATION_IS_ONLINE
else
echo "* $PROCESSNAME cnt(" $isAlive ")" " -> Dead "
sExit=$APPLICATION_IS_OFFLINE
fi
#sleep 3
#done
echo "* EXIT [ " $sExit " ]"
#exit 0
exit $sExit
[root@sfzoa62 mytest]#
2014年4月13日日曜日
Shell
http://dan-project.blog.so-net.ne.jp/2013-03-29
http://blog.suz-lab.com/2012/03/centos62openldapnss.html
http://www.server-world.info/query?os=CentOS_6&p=ldap&f=2
●
http://itdavid.blogspot.jp/2012/05/howto-openldap-24-nfsv4-automount-map.html
http://www.mogumagu.com/wp/wordpress/?p=1295
http://unixlife.jp/linux/centos-6/openldap-setting.html
---------------------------------------------------------------------------------------
各サーバ間で、ユーザのアカウントを共有できるようにLDAPサーバを構築します。
認証チェックを行う。(NFSのパスヂレクトリパスに対して)
認証されるものは、LDAPに登録した、デイレクトリ単位の共通ユーザである。
---------------------------------------------------------------------------------------
アプリケーション監視を中断された状態から再開する場合、ApplicationHA はアプリ
ケーションハートビートを有効にしません。有効にするには、[Enable Application
Heartbeat]をクリックします。
操作ログは /var/VRTSvcs/log にあります。
例: /var/VRTSvcs/log/AppControlOperations_A.log
ApplicationHA Console と仮想マシンで Storage Foundation Messaging Service
(xprtld プロセス)が動作していることを確認します。
停止している場合は、コマンドプロンプトに次のコマンドを入力します。
#/etc/init.d/xptrld start
https://sort.symantec.com/agents
アプリケーションエージェントについて詳しくは、エージェント固有の設定ガイドを参照
してください。
https://sort.symantec.com/documents/doc_details/appha/6.0/Linux/ProductGuides/
----------------------------------------------------------------------------------
[root@sfzoa62 mytest]# cat Asample
#!/bin/bash
#
# sampled Startup script for the Sampple Server
#
# description: The Sample Server is
# Application HA Customer Server.
# processname: sampled
# config: none
# pidfile: /var/run/sampled/sampled.pid
#
### BEGIN INIT INFO
# Provides: sampled
# Required-Start: $local_fs $remote_fs $network $named
# Required-Stop: $local_fs $remote_fs $network
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
SAMPLED_LANG=${SAMPLED_LANG-"C"}
INITLOG_ARGS=""
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
#sampled=${SAMPLED-/usr/sbin/sampled}
prog=sampled
param=$1
pidfile=${PIDFILE-/var/run/sampled/sampled.pid}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
#################################
# The symantics of these
#################################
start() {
# LANG=$SAMPLED_LANG daemon --pidfile=${pidfile} $sampled $OPTIONS
touch /tmp/sampleapp
RETVAL=$?
echo -$prog: start [ $RETVAL ]
return $RETVAL
}
###################################
# When stopping sampled
###################################
stop() {
# killproc -p ${pidfile} -d ${STOP_TIMEOUT} $sampled
rm -f /tmp/sampleapp
RETVAL=$?
echo -$prog: stop [ $RETVAL ]
}
####################################
# when status sampled
####################################
status() {
#ps -ef | grep httpd
APPLICATION_IS_ONLINE=110
APPLICATION_IS_OFFLINE=100
if [ -f /tmp/sampleapp ] ; then #
echo $"-exit $prog: $param online [ $APPLICATION_IS_ONLINE ] "
exit $APPLICATION_IS_ONLINE
else
echo $"-exit $prog: $param offline [ $APPLICATION_IS_OFFLINE ] "
exit $APPLICATION_IS_OFFLINE
fi
}
####################################
# See how we were called.
####################################
echo $"-Call $prog: $1 "
case "$1" in
start)
start
;;
stop)
stop
;;
status)
# status -p ${pidfile} $sampled
status
# RETVAL=$?
;;
restart)
stop
start
;;
*)
echo $"-Usage: $prog {start|stop|restart|status}"
RETVAL=2
esac
echo $"-exit $prog: $1 [ $RETVAL ] "
exit $RETVAL
[root@sfzoa62 mytest]#
###############################################################################
date +%Y%m%d%H%M%S
$ grep -v nologin /etc/shells
↑/etc/shellsファイルから「nologin」を含まない行を表示する
[root@sfzoa62 mytest]# ps -ef |grep httpd|grep -v grep
root 4910 1 0 Apr12 ? 00:00:06 /usr/sbin/httpd
apache 7405 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7406 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7407 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7408 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7409 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7410 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7411 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7412 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
[root@sfzoa62 mytest]#
##################################################################################
[root@sfzoa62 mytest]# cat httpAsample
#!/bin/bash
#
# sampled Startup script for the Sampple Server
#
# description: The Sample Server is
# Application HA Customer Server.
# processname: sampled
# config: none
# pidfile: /var/run/sampled/sampled.pid
#
### BEGIN INIT INFO
# Provides: sampled
# Required-Start: $local_fs $remote_fs $network $named
# Required-Stop: $local_fs $remote_fs $network
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
SAMPLED_LANG=${SAMPLED_LANG-"C"}
INITLOG_ARGS=""
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
#sampled=${SAMPLED-/usr/sbin/sampled}
prog=sampled
param=$1
pidfile=${PIDFILE-/var/run/sampled/sampled.pid}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
################################
# The semantics of these two functions differ from the way apachectl
#################################
start() {
# LANG=$SAMPLED_LANG daemon --pidfile=${pidfile} $sampled $OPTIONS
touch /tmp/sampleapp
/etc/init.d/httpd start
RETVAL=$?
echo -$prog: start [ $RETVAL ]
return $RETVAL
}
###################################
# When stopping sampled
###################################
stop() {
# killproc -p ${pidfile} -d ${STOP_TIMEOUT} $sampled
rm -f /tmp/sampleapp
/etc/init.d/httpd stop
RETVAL=$?
echo -$prog: stop [ $RETVAL ]
}
####################################
# when status sampled
####################################
status() {
#ps -ef | grep httpd
APPLICATION_IS_ONLINE=110
APPLICATION_IS_OFFLINE=100
/etc/init.d/httpd status
if [ -f /tmp/sampleapp ] ; then #
echo $"-exit $prog: $param online [ $APPLICATION_IS_ONLINE ] "
exit $APPLICATION_IS_ONLINE
else
echo $"-exit $prog: $param offline [ $APPLICATION_IS_OFFLINE ] "
exit $APPLICATION_IS_OFFLINE
fi
}
####################################
# See how we were called.
####################################
date +%Y%m%d%H%M
echo "****************************************"
echo "*PATH =$PATH "
echo "*HOSTNAME=$HOSTNAME "
echo "*PWD =$PWD "
echo "*USER =$USER "
echo "****************************************"
echo $"-Call $prog: $1 "
case "$1" in
start)
start
;;
stop)
stop
;;
status)
# status -p ${pidfile} $sampled
status
# RETVAL=$?
;;
restart)
stop
start
;;
*)
echo $"-Usage: $prog {start|stop|restart|status}"
RETVAL=2
esac
echo $"-exit $prog: $1 [ $RETVAL ] "
exit $RETVAL
[root@sfzoa62 mytest]#
http://blog.suz-lab.com/2012/03/centos62openldapnss.html
http://www.server-world.info/query?os=CentOS_6&p=ldap&f=2
●
http://itdavid.blogspot.jp/2012/05/howto-openldap-24-nfsv4-automount-map.html
http://www.mogumagu.com/wp/wordpress/?p=1295
http://unixlife.jp/linux/centos-6/openldap-setting.html
---------------------------------------------------------------------------------------
各サーバ間で、ユーザのアカウントを共有できるようにLDAPサーバを構築します。
認証チェックを行う。(NFSのパスヂレクトリパスに対して)
認証されるものは、LDAPに登録した、デイレクトリ単位の共通ユーザである。
---------------------------------------------------------------------------------------
アプリケーション監視を中断された状態から再開する場合、ApplicationHA はアプリ
ケーションハートビートを有効にしません。有効にするには、[Enable Application
Heartbeat]をクリックします。
操作ログは /var/VRTSvcs/log にあります。
例: /var/VRTSvcs/log/AppControlOperations_A.log
ApplicationHA Console と仮想マシンで Storage Foundation Messaging Service
(xprtld プロセス)が動作していることを確認します。
停止している場合は、コマンドプロンプトに次のコマンドを入力します。
#/etc/init.d/xptrld start
https://sort.symantec.com/agents
アプリケーションエージェントについて詳しくは、エージェント固有の設定ガイドを参照
してください。
https://sort.symantec.com/documents/doc_details/appha/6.0/Linux/ProductGuides/
----------------------------------------------------------------------------------
[root@sfzoa62 mytest]# cat Asample
#!/bin/bash
#
# sampled Startup script for the Sampple Server
#
# description: The Sample Server is
# Application HA Customer Server.
# processname: sampled
# config: none
# pidfile: /var/run/sampled/sampled.pid
#
### BEGIN INIT INFO
# Provides: sampled
# Required-Start: $local_fs $remote_fs $network $named
# Required-Stop: $local_fs $remote_fs $network
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
SAMPLED_LANG=${SAMPLED_LANG-"C"}
INITLOG_ARGS=""
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
#sampled=${SAMPLED-/usr/sbin/sampled}
prog=sampled
param=$1
pidfile=${PIDFILE-/var/run/sampled/sampled.pid}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
#################################
# The symantics of these
#################################
start() {
# LANG=$SAMPLED_LANG daemon --pidfile=${pidfile} $sampled $OPTIONS
touch /tmp/sampleapp
RETVAL=$?
echo -$prog: start [ $RETVAL ]
return $RETVAL
}
###################################
# When stopping sampled
###################################
stop() {
# killproc -p ${pidfile} -d ${STOP_TIMEOUT} $sampled
rm -f /tmp/sampleapp
RETVAL=$?
echo -$prog: stop [ $RETVAL ]
}
####################################
# when status sampled
####################################
status() {
#ps -ef | grep httpd
APPLICATION_IS_ONLINE=110
APPLICATION_IS_OFFLINE=100
if [ -f /tmp/sampleapp ] ; then #
echo $"-exit $prog: $param online [ $APPLICATION_IS_ONLINE ] "
exit $APPLICATION_IS_ONLINE
else
echo $"-exit $prog: $param offline [ $APPLICATION_IS_OFFLINE ] "
exit $APPLICATION_IS_OFFLINE
fi
}
####################################
# See how we were called.
####################################
echo $"-Call $prog: $1 "
case "$1" in
start)
start
;;
stop)
stop
;;
status)
# status -p ${pidfile} $sampled
status
# RETVAL=$?
;;
restart)
stop
start
;;
*)
echo $"-Usage: $prog {start|stop|restart|status}"
RETVAL=2
esac
echo $"-exit $prog: $1 [ $RETVAL ] "
exit $RETVAL
[root@sfzoa62 mytest]#
###############################################################################
date +%Y%m%d%H%M%S
$ grep -v nologin /etc/shells
↑/etc/shellsファイルから「nologin」を含まない行を表示する
[root@sfzoa62 mytest]# ps -ef |grep httpd|grep -v grep
root 4910 1 0 Apr12 ? 00:00:06 /usr/sbin/httpd
apache 7405 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7406 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7407 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7408 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7409 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7410 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7411 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
apache 7412 4910 0 04:28 ? 00:00:00 /usr/sbin/httpd
[root@sfzoa62 mytest]#
##################################################################################
[root@sfzoa62 mytest]# cat httpAsample
#!/bin/bash
#
# sampled Startup script for the Sampple Server
#
# description: The Sample Server is
# Application HA Customer Server.
# processname: sampled
# config: none
# pidfile: /var/run/sampled/sampled.pid
#
### BEGIN INIT INFO
# Provides: sampled
# Required-Start: $local_fs $remote_fs $network $named
# Required-Stop: $local_fs $remote_fs $network
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
SAMPLED_LANG=${SAMPLED_LANG-"C"}
INITLOG_ARGS=""
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
#sampled=${SAMPLED-/usr/sbin/sampled}
prog=sampled
param=$1
pidfile=${PIDFILE-/var/run/sampled/sampled.pid}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
################################
# The semantics of these two functions differ from the way apachectl
#################################
start() {
# LANG=$SAMPLED_LANG daemon --pidfile=${pidfile} $sampled $OPTIONS
touch /tmp/sampleapp
/etc/init.d/httpd start
RETVAL=$?
echo -$prog: start [ $RETVAL ]
return $RETVAL
}
###################################
# When stopping sampled
###################################
stop() {
# killproc -p ${pidfile} -d ${STOP_TIMEOUT} $sampled
rm -f /tmp/sampleapp
/etc/init.d/httpd stop
RETVAL=$?
echo -$prog: stop [ $RETVAL ]
}
####################################
# when status sampled
####################################
status() {
#ps -ef | grep httpd
APPLICATION_IS_ONLINE=110
APPLICATION_IS_OFFLINE=100
/etc/init.d/httpd status
if [ -f /tmp/sampleapp ] ; then #
echo $"-exit $prog: $param online [ $APPLICATION_IS_ONLINE ] "
exit $APPLICATION_IS_ONLINE
else
echo $"-exit $prog: $param offline [ $APPLICATION_IS_OFFLINE ] "
exit $APPLICATION_IS_OFFLINE
fi
}
####################################
# See how we were called.
####################################
date +%Y%m%d%H%M
echo "****************************************"
echo "*PATH =$PATH "
echo "*HOSTNAME=$HOSTNAME "
echo "*PWD =$PWD "
echo "*USER =$USER "
echo "****************************************"
echo $"-Call $prog: $1 "
case "$1" in
start)
start
;;
stop)
stop
;;
status)
# status -p ${pidfile} $sampled
status
# RETVAL=$?
;;
restart)
stop
start
;;
*)
echo $"-Usage: $prog {start|stop|restart|status}"
RETVAL=2
esac
echo $"-exit $prog: $1 [ $RETVAL ] "
exit $RETVAL
[root@sfzoa62 mytest]#
2014年4月3日木曜日
aaaaaa
aaaaa
ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f ./group.ldif
http://dan-project.blog.so-net.ne.jp/2013-03-29
http://gihyo.jp/admin/serial/01/ldap/0002
http://dan-project.blog.so-net.ne.jp/2013-03-29
ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f ./group.ldif
http://dan-project.blog.so-net.ne.jp/2013-03-29
http://gihyo.jp/admin/serial/01/ldap/0002
http://dan-project.blog.so-net.ne.jp/2013-03-29
2014年3月31日月曜日
2014年3月25日火曜日
2014年3月19日水曜日
作業
展開済のWindowsサーバ把握
展開済のWindowsサーバ修正
●SOCの取り込み
削除対象の仮想マシーンの確認 -完了
IP払い出し - 未
取込方法検討 - 未
●アフィニティールール設定
①FACE
ユーザ様への作業日程調整 - 送付済
vMotion計画 → 6台のホストを移動、うち3台はOracleホストへ、Oracle外は他のホストへ
vMotion実施 → 未
②FCDS
ユーザ様への作業日程調整 - 未
vMotion計画 → ?台数
vMotion実施 → 未
③アフィニティールールの設定依頼 -未
●バックアップ
●NFSバッチ作成
●既存 議事録
●容量まとめ
●TOSは使えないか
2014年3月14日金曜日
仮想化 アフィニティールール
http://www.climb.co.jp/blog_vmware/vmware-4534
http://www.climb.co.jp/blog_vmware/vmware-4450
http://blogs.flexerasoftware.com/elo-japan/2012/09/oracle-database-licensing-in-a-vmware-virtual-environment-part-1-of-3.html
●Acronis オンラインバッチ Windows の変更
展開済のWindowsサーバ把握
展開済のWindowsサーバ修正
●soc ip払い出し
●あふぃにティールール
EC、MVNO調整の vmotionをかける
●NFSバッチ作成
●既存 議事録
●容量まとめ
●TOSは使えないか
2014年2月24日月曜日
2014年2月19日水曜日
NFS文書
●ユーザ ID のマッピング
サーバマシン上のファイルに対する nfsd によるアクセスコントロールは、 それぞれの NFS RPC request の際に与えられる uid と gid に基づいている。
ユーザは通常、 サーバ上にある自分のファイルには、それが普通のファイルシステム上に あるのと同様にアクセス可能であることを期待している。
これにはクライアントとサーバ上で用いられる uid と gid がそれぞれ 同じである必要があるが、これは常に真であるとは限らず、望ましいとも限らない。
サーバとクライアントで同一ユーザ名であってもuidが異なることによることによって、他ユーザのファイルの更新および削除が発生する問題が発生する可能性がある。
NFSv3での問題の発生を改善するために、NFSv4では、サーバとクラインのrpcidmapdサービスによるユーザ,uidで一意性を持たせた管理を行っている。
しかし、NFSv4 の標準設定では、スーパーユーザ、一般ユーザすべてがNFSの匿名ユーザに変更され、一旦匿名ユーザで登録されたファイルの変更はスーパーユーザ
でもオーナーを変更できない。よってNFSv4の標準設定を変更して実態の運用に合わせる必要がある。
■Exportファイル
•root_squash —
ユーザー nfsnobodyにユーザーIDを与え、 リモート接続している rootユーザーからrootの権限を取り上げます。
これにより、リモートrootユーザーの権限を最低のローカルユーザーまで "押し下げ"て、リモートサーバーにあるファイルの不正変更を効果的に防ぎます。
また、no_root_squashオプションはrootの押し下げをオフにします。
rootを含めてすべてのリモート ユーザーを押し下げるには、all_squashオプションを使用します。
ユーザーIDとグループIDを指定して ある特定ホストからのリモートユーザーと一緒に使用するには、anonuidオプションとanongid オプションをそれぞれ使用します。
その場合、 リモートNFSユーザーの為に特別なユーザーアカウントを作成することにより
(anonuid=とanongid=)の共有と指定ができます。
はユーザーID番号で、 はグループID番号です。
■サブツリーのチェックを無効にする機能、
安全でないポートからのアクセス許可、安全でないファイルロックの許可(特定の初期 NFSクライアント実装に必要)などがあります
使用頻度の少ないこれらのオプションについての詳細は exports manページを参照してください
■
9.5.2. ファイルアクセス権
NFSファイルシステムがリモートホストによって読み書きモードでいったんマウントされると、各共有ファイルが持つ唯一の保護は権利のみとなります。
仮に同じユーザーIDの値を持つ2人のユーザーが、同じNFSファイルシステムをマウントした場合、互いに相手のデータを変更することができます。
さらにはクライアントシステムでrootとしてログインする人は誰でもsu -コマンドを使用して、NFS共有を介して特定のファイルにアクセスできるユーザーになることが
できます。NFSとユーザーIDの不一致に関する詳細は、Red Hat Enterprise Linux システム管理入門ガイドの章、ユーザーアカウントとリソースアクセスの管理を参照して下さい。
デフォルトではNFSがアクセス制御リスト(ACL)をサポートします。 この機能を無効にすることはお推めできません。
この機能に関する詳細はRed Hat Enterprise Linux システム管理ガイドの章、ネットワーク ファイル システム(NFS) を参照ください。
NFSによりファイルシステムをエクスポートする時、root squashingの使用がデフォルト動作となります。
この結果、ローカルマシンのrootユーザーとして NFS共有を利用するユーザーのユーザーIDは、
サーバーのnfsnobodyアカウント値に設定されます。絶対にroot squashing は停止しないでください。
NFS 共有を読み取り専用でエクスポートする場合、all_squashオプションの使用を検討して下さい。
このオプションはエクスポート対象ファイルシステムにアクセスするすべてのユーザーに nfsnobodyユーザーのユーザーID を取得させます。
■
18.3.2. 手作業でのファイルシステムのエクスポート
NFS のエクスポートサービスで利用する設定ファイルは、 /etc/exports と /etc/sysconfig/nfs です。
これらのファイルに加え、 NFSv4 サーバの設定には /etc/idmapd.conf ファイルが必要です。
また、サービスを 開始したり再起動したりするには、 rcnfsserver restart コマンドを実行します。
このコマンドでサービスを起動すると、 /etc/sysconfig/nfs で NFSv4 を設定している場合、
rpc.idmapd についても起動を行ないます。なお、 NFS サーバを起動するには RPC portmapper が動作している必要があります。
そのため、 rcrpcbind restart を実行して、 portmapper サービスについても起動または再起動を行なってください。
http://linuxjm.sourceforge.jp/html/nfs-utils/man5/exports.5.html
■
18.3.2.1.3. /etc/idmapd.conf
Linux マシンにおいて、各ユーザには名前と ID が割り当てられています。
idmapd はサーバに対して NFSv4 リクエストが届いた場合に、名前から ID への変換を行ない、クライアントに応答する仕組みを備えています。
NFSv4 では名前だけで通信を行なう都合から、サーバとクライアントの両方で 動作していなければなりません。
なお、 NFS を利用してファイルシステムの共有を行なうマシン間では、 ユーザ名と ID (uid) が共通化されるように設定してください。
NIS や LDAP などの方法や、それ以外のドメイン認証の仕組みをお使いの環境で利用する ことで、これを設定することができます。
また、 /etc/idmapd.confファイル内の Domain パラメータは、サーバとクライアントで 同じになるように設定してください。
よくわからない場合は、 サーバとクライアントで両方とも既定の localdomain ドメインのままにしておいてください。
設定ファイルは、たとえば下記のように なります
=========================================
サーバマシン上のファイルに対する nfsd によるアクセスコントロールは、 それぞれの NFS RPC request の際に与えられる uid と gid に基づいている。
ユーザは通常、 サーバ上にある自分のファイルには、それが普通のファイルシステム上に あるのと同様にアクセス可能であることを期待している。
これにはクライアントとサーバ上で用いられる uid と gid がそれぞれ 同じである必要があるが、これは常に真であるとは限らず、望ましいとも限らない。
サーバとクライアントで同一ユーザ名であってもuidが異なることによることによって、他ユーザのファイルの更新および削除が発生する問題が発生する可能性がある。
NFSv3での問題の発生を改善するために、NFSv4では、サーバとクラインのrpcidmapdサービスによるユーザ,uidで一意性を持たせた管理を行っている。
しかし、NFSv4 の標準設定では、スーパーユーザ、一般ユーザすべてがNFSの匿名ユーザに変更され、一旦匿名ユーザで登録されたファイルの変更はスーパーユーザ
でもオーナーを変更できない。よってNFSv4の標準設定を変更して実態の運用に合わせる必要がある。
■Exportファイル
•root_squash —
ユーザー nfsnobodyにユーザーIDを与え、 リモート接続している rootユーザーからrootの権限を取り上げます。
これにより、リモートrootユーザーの権限を最低のローカルユーザーまで "押し下げ"て、リモートサーバーにあるファイルの不正変更を効果的に防ぎます。
また、no_root_squashオプションはrootの押し下げをオフにします。
rootを含めてすべてのリモート ユーザーを押し下げるには、all_squashオプションを使用します。
ユーザーIDとグループIDを指定して ある特定ホストからのリモートユーザーと一緒に使用するには、anonuidオプションとanongid オプションをそれぞれ使用します。
その場合、 リモートNFSユーザーの為に特別なユーザーアカウントを作成することにより
(anonuid=
■サブツリーのチェックを無効にする機能、
安全でないポートからのアクセス許可、安全でないファイルロックの許可(特定の初期 NFSクライアント実装に必要)などがあります
使用頻度の少ないこれらのオプションについての詳細は exports manページを参照してください
■
9.5.2. ファイルアクセス権
NFSファイルシステムがリモートホストによって読み書きモードでいったんマウントされると、各共有ファイルが持つ唯一の保護は権利のみとなります。
仮に同じユーザーIDの値を持つ2人のユーザーが、同じNFSファイルシステムをマウントした場合、互いに相手のデータを変更することができます。
さらにはクライアントシステムでrootとしてログインする人は誰でもsu -コマンドを使用して、NFS共有を介して特定のファイルにアクセスできるユーザーになることが
できます。NFSとユーザーIDの不一致に関する詳細は、Red Hat Enterprise Linux システム管理入門ガイドの章、ユーザーアカウントとリソースアクセスの管理を参照して下さい。
デフォルトではNFSがアクセス制御リスト(ACL)をサポートします。 この機能を無効にすることはお推めできません。
この機能に関する詳細はRed Hat Enterprise Linux システム管理ガイドの章、ネットワーク ファイル システム(NFS) を参照ください。
NFSによりファイルシステムをエクスポートする時、root squashingの使用がデフォルト動作となります。
この結果、ローカルマシンのrootユーザーとして NFS共有を利用するユーザーのユーザーIDは、
サーバーのnfsnobodyアカウント値に設定されます。絶対にroot squashing は停止しないでください。
NFS 共有を読み取り専用でエクスポートする場合、all_squashオプションの使用を検討して下さい。
このオプションはエクスポート対象ファイルシステムにアクセスするすべてのユーザーに nfsnobodyユーザーのユーザーID を取得させます。
■
18.3.2. 手作業でのファイルシステムのエクスポート
NFS のエクスポートサービスで利用する設定ファイルは、 /etc/exports と /etc/sysconfig/nfs です。
これらのファイルに加え、 NFSv4 サーバの設定には /etc/idmapd.conf ファイルが必要です。
また、サービスを 開始したり再起動したりするには、 rcnfsserver restart コマンドを実行します。
このコマンドでサービスを起動すると、 /etc/sysconfig/nfs で NFSv4 を設定している場合、
rpc.idmapd についても起動を行ないます。なお、 NFS サーバを起動するには RPC portmapper が動作している必要があります。
そのため、 rcrpcbind restart を実行して、 portmapper サービスについても起動または再起動を行なってください。
http://linuxjm.sourceforge.jp/html/nfs-utils/man5/exports.5.html
■
18.3.2.1.3. /etc/idmapd.conf
Linux マシンにおいて、各ユーザには名前と ID が割り当てられています。
idmapd はサーバに対して NFSv4 リクエストが届いた場合に、名前から ID への変換を行ない、クライアントに応答する仕組みを備えています。
NFSv4 では名前だけで通信を行なう都合から、サーバとクライアントの両方で 動作していなければなりません。
なお、 NFS を利用してファイルシステムの共有を行なうマシン間では、 ユーザ名と ID (uid) が共通化されるように設定してください。
NIS や LDAP などの方法や、それ以外のドメイン認証の仕組みをお使いの環境で利用する ことで、これを設定することができます。
また、 /etc/idmapd.confファイル内の Domain パラメータは、サーバとクライアントで 同じになるように設定してください。
よくわからない場合は、 サーバとクライアントで両方とも既定の localdomain ドメインのままにしておいてください。
設定ファイルは、たとえば下記のように なります
=========================================
登録:
投稿 (Atom)