본문 바로가기

운영/백업과 복원

robocopy를 이용한 백업 소산 관리

728x90

robocoy를 이용한 백업 파일 복사

robocopy 소스폴더 타겟폴더 /r:1 /s /z /j /LOG:"로그파일명.log"

옵션 설명

- /r:1 : 실패 시 재 시도 횟수 1회

- /s : 빈 폴더는 자동으로 제외

- /z : 파일을 다시 시작 가능 모드로 복사합니다. 다시 시작 가능 모드에서 파일 복사가 중단되면 Robocopy는 전체 파일을 다시 복사하는 대신 중단된 위치를 선택할 수 있습니다.

- /j : 버퍼되지 않은 I/O를 사용하여 복사합니다(대용량 파일에 권장됨).

- /LOG: 로그 파일을 기록

 

PowerShell을 이용한 로그 정보 DB에 저장하기

$systemname=$args[0]

copy "경로\$systemname.log" "경로\$systemname-temp.log"

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=localhost;Database=DB명;Integrated Security=True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand


$SqlCmd.CommandText = "
CREATE TABLE #TEMP (LogMessage NVARCHAR(MAX));

BULK INSERT #TEMP 
FROM '경로\$systemname-temp.log'
WITH (CODEPAGE='RAW' ,FIELDTERMINATOR = '|',ROWTERMINATOR = '\n', DATAFILETYPE='widechar')

INSERT INTO Log_History
SELECT '$systemname',getdate(),LogMessage FROM #TEMP
"
$SqlCmd.Connection = $SqlConnection
$SqlConnection.Open()
$sqlCmd.ExecuteNonQuery()
$SqlConnection.Close()

remove-item "경로\$systemname-temp.log"
remove-item "경로\$systemname.log"

robocopy에서 저장한 copy로그를 DB에 저장하여 모니터링 및 에러 분석에 사용하려고 합니다. 

 

728x90