본문 바로가기
programming language/powershell

Powershell 지정 일 이후의 파일 백업

by 남성 2012. 3. 7.

컴퓨터를 사용함에 있어서 백업의 중요성은 100번 말해도 지나치지 않다고 생각합니다.

 

지금까지 컴퓨터를 써 오면서 저는 백업 또는 저장을 제대로 안 해서 짧게는 몇 시간부터 ~ 몇 개월 간의 자료들을 날려 먹은 경험이 부지기수라 백업이 항상 최 우선 입니다.

 

몇 시간 동안 만들 자료가 다 날라 갈 때의 그 허탈함이란……

 

몇 년 전 새벽에 졸린 눈 비벼가며 작성하던 리포트가 날라 갔을 때의 기억을 생각하면 아직도 간담이 서늘해 지는군요.

 

지금도 생각 나는 대로 키보드를 두드리면서도 습관적으로 ctrl + S 키보드를 꾸~~~욱 누르고 있습니다. ㅋㅋㅋ

 

이런 백업의 중요성 때문에 가끔 윈도를 밀면서 날라갈 수도 있는 C 드라이브의 중요한 자료들은 다른 드라이브로 주기적으로 백업을 합니다.

 

물론 제가 매번 직접 백업 하는 건 아니고 스크립트를 주로 활용 합니다.

 

스크립트 짧게 작성해서 예약 작업으로 걸어 놓으면 C 드라이브의 중요한 정보가 날라갈까 봐 노심초사하는 일은 없어지게 되더군요.

 

윈도 사용시는 주로 powershell 을 사용하는데요.

 

오늘은 특정일 이후의 자료에 대한 백업 방법에 대해 간단하게 말씀 드리겠습니다.

 

최근에 저는 시스템 트레이딩에 관심이 생겨서 코딩을 조금씩 하고 있습니다.

 

시작한지 얼마 안 돼서 암것도 잘 모르면서 코딩을 하지만 그래도 쉽게 날려버리고 싶진 않더군요.

 

그래서 아래와 같은 코드를 예약 작업으로 돌립니다.

 

gci "C:\리딩투자증권\리딩스타플러스\YesLang\*" -recurse  -include *.* | Where-Object {($_.LastWriteTime -gt "2012-01-01") -and ($_.CreationTime -gt "2012-01-01") }  | Copy-Item  -Destination "D:\BACKUP\leading" –Force

 

위 코드에 대해 간단히 설명 드리겠습니다.

 

gci "C:\리딩투자증권\리딩스타플러스\YesLang\*" -recurse  -include *.* è C:\리딩투자증권\리딩스타플러스\YesLang 폴더에서 하위 폴더를 포함하여 *.* 형태의 파일을 찾음

 

코드 중간의 | 기호는 파이프라인 입니다. 즉 이 기호를 이용하면 | 왼쪽의 결과가 오른쪽 코드의 입력으로 전달이 되는 거죠.

 

Where-Object {($_.LastWriteTime -gt "2012-01-01") -and ($_.CreationTime -gt "2012-01-01") } è 위에서 찾은 파일들 중에서 생성 일이 2012-01-01 이후이고 수정 일도 2012-01-01 이후인 파일만 찾음

 

Copy-Item  -Destination "D:\BACKUP\leading" –Force è 위에서 찾은 특정일 이후의 파일들을 D:\BACKUP\leading 폴더로 강제로 복사

 

뭐 몇 줄 안되지만 저한테는 굉장히 유용한 코드라고 생각이 됩니다.


댓글0