Dropbox, OneDrive, Google Drive File Stream
제일 처음 써봤던 Cloud는 Dropbox였다. 학부 2학년때 팀플젝 자료를 Dropbox로 공유했었는데, 그때부터 보관이 필요한 모든 자료는 cloud에 저장해 왔다. 하지만 Dropbox는 기본 제공 용량이 매우 적었는데, 처음에는 결제해서 쓰다가 학부 졸업할 때쯤 학교 계정이 Office365와 연동이 되어서 OneDrive를 사용하기 시작했다.
얼마 전에 확인해보니까 작년부터는 학교 계정으로 Google Gsuite를 사용할 수 있게 되었다. 당연히 개인 Google 계정과는 연동이 안 되고 학교 계정으로만 사용 가능하긴 한데 무제한 용량의 구글드라이브는 꽤 매력적이었기 때문에 기존의 OneDrive에서 Gsuite의 Drive File Stream (DFS) 으로 갈아타기로 했다. 사실 아직 100GB를 채우지도 못했기 때문에 용량 자체는 모자라지 않지만 딱 한가지 불편한 점이 Office와 OneDrive 사이의 연동이었다. 워드, 엑셀 파일 작성 중에 저장만 하려고 하면 OneDrive와 연동이 되는 까닭에 저장에 한세월...
OneDrive에서 DFS로 가장 빠르고 간단하게 옮기는 방법은 컴퓨터에 OneDrive 및 DFS를 모두 설치하고 파일을 그대로 옮기는 것이다. 그런데 아직 OneDrive에서 작업 중인 파일이 있어서 일단은 파일을 복사만 하기로 했다.
파일을 그냥 복사할 경우 발생하는 문제는 파일 정보의 '수정한 날짜' 같은 정보가 날아간다는 것이다. 기껏 DFS로 옮겨놨는데 모든 파일들의 수정 날짜가 오늘 날짜로 박제되어 있길 바라는 사람은 없을 것이다. 검색해보니 Robocopy 명령어를 사용하면 된다고 한다.
Robocopy 명령어
대충 아래와 같은 형식으로 powershell에서 실행했다.
robocopy "SRC_DIR" "DST_DIR" /DCOPY:T /LOG:"LOG_FILE"
-
- SRC_DIR - 원본 디렉토리
- DST_DIR - 파일이 복사될 디렉토리
- /DCOPY:T - 파일의 타임스탬프를 복사
- /LOG - 복사 log를 "LOG_FILE" 파일에 저장
/DCOPY:T 옵션을 통해 파일의 타임스탬프를 그대로 복사해온다. /LOG 옵션으로 로그 파일 출력을 따로 지정해주지 않으면 PowerShell 창에 모든 로그가 출력된다. 화면에 무언가를 출력한다는 것은 생각보다 매우 느린 동작이기 때문에 복사 속도를 떨어뜨린다. 나름 중요한 옵션 ㅋㅋㅋ
이때 조심해야 할 것이 원본 및 목적 디렉토리를 입력하면서 TAB 키로 자동완성 기능을 이용하는데 만약 경로에 공백이 들어간다면 마지막에 자동으로 들어가는 \는 삭제해 줘야 한다. 예를 들어서 디렉토리 구조가 다음과 같다면,
-
- robocopy test
- SRC
- DST
- robocopy test
TAB 키를 눌러서 자동완성되는 robocopy 명령어는 아래와 같다.
robocopy 'D:\robocopy test\SRC\' 'D:\robocopy test\DST\'
이때 마지막에 들어가는 \에 의해 바로 뒤에 오는 '를 인식하지 못하게 된다. 너무나도 당연한 문제인데 이것 때문에 한참 헤맸다. 경로에 공백이 없다면 '문자가 들어가지 않으므로 고려할 필요는 없는 문제이다.
끝.