일단은 프로그래머 나부랭이

centos 7에 onedrive 연결하기 본문

Linux

centos 7에 onedrive 연결하기

하필이면 도대체가 2020. 4. 27. 21:40

※ Windows의 연결 방법은 다른 게시글을 참고해주시기 바랍니다.
(https://this1.tistory.com/entry/windows%EC%97%90%EC%84%9C-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EC%A0%80%EC%9E%A5%EC%86%8C%EB%A5%BC-%EC%97%B0%EA%B2%B0%ED%95%B4%EB%B3%B4%EC%9E%90)


(와 이게 되네)

오늘은 회사에서 제공해주는 office365 계정을 어떻게 활용할까 고민하던중, 'linux에 nfs처럼 mount할 수 없을까?'
라는 생각이 들어 시도해본 뒤, 내용을 정리하여 올립니다.

우선 one drive 자체는 windows만 지원합니다.
그러나 검색을 해본 결과, rclone이라는 프로그램을 이용하면 linux에서도 one drive를 mount하여 사용할 수 있다는 것을 찾게되었습니다.

방법은 아래와 같습니다.

1. https://rclone.org/downloads/ 에서 자신에게 맞는 패키지를 설치한다.
  (귀찮으면 ' curl https://rclone.org/install.sh | sudo bash ' 를 복사하여 실행하도록 하자)
 - 설치가 잘 됐으면 rclone을 실행하여 명령이 인식되는지 확인

2. 사진과 같이 rclone config를 실행한 뒤, n을 입력하고 엔터!
   이때 name을 입력하라고 합니다. (스샷을 깜빡했네요)
   name은 이 연결의 명칭을 의미하므로 적당히 정하시면 됩니다.
   참고로 저는 'one_drive'로 했습니다.

이후 name을 정해줍니다

3. 그러면 아래의 사진처럼 Storage 목록이 나타납니다.
   저는 onedirve를 연결할 생각이므로, onedrive가 있는 23번을 입력하고 엔터를 칩니다.
   p.s : 참고로, rclone 버전에 따라, storage 목록이 다를 수 있으니, 번호를 꼭 확인하신 다음에 진행하시기 바랍니다.

rclone 버전에 따라, storage 목록이 다를 수 있음에 유의!

4. 이후 client_id와 client_pw는 공란으로 두고 엔터를 입력하고, advanced config 여부는 n, auto config 여부는 y를 입력하여 진행합니다.

no 다음 yes를 입력하는게 은근 헷갈린다.

5. 그러면 웹브라우져 창이 뜨면서 office365 계정으로 로그인을 하라고 합니다.
   로그인을 하면 아래의 창이 뜨는데, 이는 'rclone이 연결을 요청하니, 동의하냐고 묻는 것' 입니다.
   Accept(동의)를 눌러주시면 됩니다.
   이 때, cmd에서 작업 중인 경우라면, 작업중이던 장비에 접속하여 localhost:53682 url에 접속해야만 합니다.

만약 cmd로 작업하던 중이라면, cmd창에 나타난 주소를 복사해 localhost로 접속해야만 합니다.

6. 동의를 누르면 Success라는 메세지를 보여줍니다. 그 뒤 창을 닫으면 아래와 같은 내용이 나타납니다.
   이는 '연결이 완료되었으니 연결할 서비스를 선택하라'는 정도의 내용입니다.
   물론 onedrive를 연결할 것이기 때문에, 1번을 누릅니다.

사실 2~5는 뭔지 잘 모른다.

7. 이후 연결 확인을 합니다.
   스샷이 알아보기 헷갈리실 수도 있겠네요.
   내용은 대충 'n개의 드라이브를 찾았으며, 당신이 연결할 드라이브를 선택하라'고 합니다.
   아마 대부분의 경우 0: OneDrive (personal) id=~~~~하면서 뜰겁니다.
   'Chose drive to use:> '는 0을 입력해서 주세요.
   그 다음 연결할 drive의 경로를 최종적으로 확인합니다.
   여기서는 Y를 누릅니다.   

스샷을 찍어놓고 보니 뭔 내용인지 모르겠다! 일단 0과 y를 누르자!

8. 그러면 최종적으로 연결이 잘 됐음을 알려주면서 연결된 token을 보여줍니다
   y를 눌러서 설정을 저장합시다.
   그러면 맨 처음에 rclone config를 입력했을 때와 비슷한 메뉴가 나옵니다.
   q를 입력해서 나가줍니다.

9. 이후 onedrive를 mount할 디렉토리를 생성합니다.
   그다음 ' rclone --vfs-cache-mode writes mount [name]: [mount할 directory] '를 입력하면 drive가 연결됩니다.
   (확인은 df -h 명령으로)
   그런데 여기서 한가지 문제가 발생합니다.
   바로, 저 명령을 매번 linux 부팅시마다 back ground로 수행하도록 해줘야 한다는 점이있습니다.

rclone을 설정한 세션에서 mount 명령을 실행해주니 정상적으로 mount가 된다. 그런데!

(9번의 문제를 해결할 방법은 여러가지가 있습니다. 아래는 제가 해결한 방법이며, 검색을 통해 다른 방법을 찾아 해결하셔도 무방합니다.)
10. 9번의 문제를 해결하기 위해 sh파일을 하나 생성합니다. 아래를 복사해서 적당한 위치에 sh파일을 생성니다.

# !/bin/bash
rclone --vfs-cache-mode writes mount one_drive: /oneDrive

11. /etc/rc.d/rc.local 을 열고 방금 생성한 script를 추가합니다.
    그리고 rc.local이 활성화 될 수 있도록 권한을 변경합니다.
    chmod 744 /etc/rc.d/rc.local

touch 어쩌구는 기본적으로 있을겁니다.

12. 이제 재부팅을 하고 df -h를 입력해서 결과를 확인하시면 됩니다.
     만약 적용이 안됐다면, 10에서 생성한 sh파일의 권한을 변경해보시기 바랍니다. (대충 777로 하시면 될겁니다)

 

이상 centos에서 one drive mount하기에 대한 설명을 마치겠습니다.

마지막으로 유의사항을 알려드리자면, one drive에는 휴지통이라는 개념이 있습니다.
어떤 파일이라도 삭제를하면 우선 휴지통에 저장이 되는건데요. (windows 처럼)
위와 같이 linux OS에 mount를 한 다음, linux에서 rm으로 파일을 지울 경우에도 휴지통이 작동합니다.
즉, 파일을 삭제할 경우, 완전 삭제가 되는게 아니라, 삭제된 파일이 휴지통으로 이동을 합니다.
따라서 파일 이동이 잦으신 분은 사용에 유의하셔야 겠습니다.

'Linux' 카테고리의 다른 글

docker로 jenkins 시작하기  (1) 2020.11.09
core dump 분석시 참고할 만한 글  (0) 2020.09.23
less로 리눅스에서 대용량 파일을 열어보자  (0) 2020.02.12
linux log 파일 의미  (0) 2020.02.03
Centos 7 싱글모드 접속 방법  (0) 2020.01.09

Comments