반응형

PowerShell에서 USB Drive를 백업

 

 

Step 1 : 탐색

 

Get-ChildItem Cmdlet을 이용해서 USB 드라이브 전체 폴더를 탐색을 할 수 있습니다.

 

Get-ChildItem $usbdrive -recurse

 

 

 

Step 2 : 파일 비교

 

아래와 같이 마지막으로 수정된 시간을 비교해서 변경된 파일인지 확인 후 복사를 시작을 합니다.

$checkFile = Get-Item <”백업 파일 전체 이름”>

$backupFile = <백업하는 파일 객체>

if($checkFile.LastWriteTime –gt $backupFile.LastWriteTime)

        {

            Write-Host "Copy $backupFile.FullName"

            Copy-Item -Path $backupFile.FullName -Destination $checkFile -Force

        }

 

 

 

Step 3 : Full Script

 

아래의 함수는 특정 USB를 지정을 하면 특정 폴더에 백업을 시작을 합니다. 기존에 백업본이 작성되었을 경우 변경된 파일만 백업을 합니다.

 

function BackUp-USB{

 

    param(   

        [Parameter(Mandatory=$true)]

        $backupPath,

        [Parameter(Mandatory=$true)]

        $usbDrive  

    )  

 

 

    if(!(Test-Path $backupPath))

    {

        New-Item $backupPath  -type directory

    }

   

    Get-ChildItem $usbdrive -recurse | % {

   

    $checkFile = $_.FullName.Replace($usbDrive, $backupPath)

   

    if(Test-Path $checkFile)

    {

        if((Get-Item $checkFile).LastWriteTime -gt $_.LastWriteTime)

        {

            Write-Host "Copy $_.FullName"

            Copy-Item -Path $_.FullName -Destination $checkFile -Force

        }

    }

    else

    {

        Write-Host "Copy $_.FullName"

        Copy-Item -Path $_.FullName -Destination $checkFile -Force

    }   

   

    }          

}

 

BackUp-USB "C:\USBArchive" "K:"

 

 

 

 

참고 자료

 

Get-ChildItem

http://technet.microsoft.com/ko-kr/library/dd347686.aspx

 

 

<출처: http://social.technet.microsoft.com/Forums/ko-KR/windowsserverko/thread/58e164ca-8ea3-44e8-a431-f42a7fa5be8f >

 

반응형

+ Recent posts