본문으로 바로가기

1. rclone 다운로드 및 스테이션으로 이동

https://rclone.org/downloads/



Xpenology DSM 4.x까지는 32비트이고, DSM5.x부터는 64비트인듯하다.


나는 DSM5.2 이므로

386-32 linux 용을 받아도 되고, 64비트도 된다. 타블로그 참고시 386으로 되어있었다.


압축을 풀어서 rclone 파일 하나만을 웹스테이션을 띄워서 폴더에 투척하자

나 같으면 /volume1/pvr 폴더에 넣었다고 가정하고

ssh 로 /volume1/pvr로 이동

cd /volume1/pvr

cp rclone /usr/bin 복사

chmod 755 /usr/bin/rclone 실행권한변경

chown root:root /usr/bin/rclone 소유권변경

ls -al /usr/bin/rclone 파일 확인


2. rclone으로 구글드라이브 접근환경파일 생성

아래 블로그에 설명이 아주 잘 되어 있다. 그냥 따라하면된다. 아래 주의 부분 읽고.


설치방법 https://blog.naver.com/binsoore/221214962893


rclone 1.44 버전 기준


설치과정중 참고. 대부분 그냥 엔터치면됨.

클라우드 선택시 12번 google drive선택


아래 단계서부터 중요.

..

.

.

.

Edit advanced config? (y/n) 고급설정할래?

y/n> n

아니오 한다.


Remote config

Use auto config? 자동설정할래? 

 * Say Y if not sure

 * Say N if you are working on a remote or headless machine or Y didn't work

N

아니오 한다.


그럼 사이트 주소를 띄우며 코드를 요구한다.

사이트 주소를 복사해서 웹브라우저에 띄우고 인증코드를 받는다.


Enter verification code>   여기에 코드입력엔터

Configure this as a team drive?

팀드리이버냐?

현재 마운트하고자 하는 것이 팀드라이브면 y , 그냥 개인드라이브면 n 한다.

나는 팀드라이브므로,

y

한다.



파일 백업방법 http://blog.naver.com/kdsong/221236770226


설정과정단계에서 접근할 클라우드가 엄청많이 리스트될 것인데 구글 드라이브의 경우 위 블로그에서는 11번이지만 , rclone버전이 1.42인가 그래서 12번이 구글드라이브일 것이다.


주의.

구글 드라이브선택후 다음단계는 팀드라이브인지 묻는 창에서 팀드라이브접근을 하고자 한다면 y를 반드시 해주길. 그렇지 않으면 개인드라이브로 접근설정이 되니까.


웹스테이션에서 구글드라이브 접근이 되도록 마운트해볼려고 했지만 fuse 파일마운트시스템인지,, 요것이 제대로 안되는 듯하여 실패.


--> 아래 4번부터 대로 하면됨.



나의 DSM버전은 DSM 3615sx 5.2.5967 update8 이다.


3. 백업하기 - 명령, 스크립트


기본적으로 터미널에서 한번 테스트해본다.

 rclone에서 초기 설정시 대상이름을 remote 기본값으로 하였기때문에 원격지구글드라이브 이름은 remote 이다.

rclone copy 나스의복사대상 remote:구글드라이브에 업로드할 폴더위치


rclone copy /volume1/TV remote:/TV


볼륨1하위 TV 폴더를 구글의 루트하위TV에 올리겠다는 말이다.

참고로, 팀드라이브일경우에, 팀드라이브를 웹에서 오픈하면 나의 닉네임이 먼저 존재하고 그걸 열면 실제 나의 디렉토리가 나온다. 여기가 나의 루트 위치이다.


remote:/닉네임/TV 가 아니라 remote:/TV란 말.


만약 구글드라이브에 TV폴더가 없다면 자동으로 만들어 올린다.


나는 copy명령으로 하였다. 

나스에서 복사하여 구글로 올리는 방법으로.


위 블로그에도 설명이 되어있지 싶은데 copy로 할경우, 

나스에서 구글드라이브(이하 gdrive)로 업로드시 , gdrive에 이미 파일이 존재하면 SKIP 한다. 따라서 나스에서 변경된 파일만 백업하게 된다.


폴더하위모두를 백업하므로 일일이 지정하지 않아도 되어서 편한것 같다.


파일을 아예 이동하고자 한다면 copy대신 move를 쓰면 되겠다.


rclone

rclone 스크립트

/volume1/pvr/rclone.sh 로 만들어 주었다.


rclone 는 /usr/bin 아래로 복사했기때문에 (윈도우의 windows\system32경로에 해당) 어느 위치에서든 실행이 되므로 rclone의 절대경로를 굳이 줄 필요는 없다.


쉘이 bash가 아니고 ash 나 sh 로 해야 동작이 되었다.



1
2
3
#!/bin/sh
 
rclone copy /volume2/video/Ani remote:/Ani



터미널에서는 root 환경이라서 그냥 되지만

만약 작업스케줄러에서 할경우 root권한으로 실행하도록 하는것은 맞지만 root 환경으로 되는게 아니기때문에(로그인한 계정환경)

rclone 설치하면서 생성한 구글드라이버 정보를 담고있는 환경설정파일을 지정해주어야 되었다.


http://www.2cpu.co.kr/nas/18714


따라서 아예 이렇게 하는게 좋다.


/volume1/pvr/rclone.sh



1
2
3
#!/bin/sh
 
rclone --config /root/.config/rclone/rclone.conf copy /volume2/video/Ani remote:/Ani




작업스케줄러에 등록시는 스크립트로 실행하도록

sh /volum1/pvr/rclone.sh 로 해도 되고


아니면, 명령구문으로 아예 주어도 되겠다.


rclone --config /root/.config/rclone/rclone.conf copy /volume2/video/Ani remote:/Ani


4. 구글드라이브를 마운트(읽기전용), 언마운트


rclone --config /root/.config/rclone/rclone.conf mount --umask 0 --allow-other --read-only remote:/TV /volume1/Gdrive/TV &


DSM 5.x에서는 fusermount 의 위치가 /usr/syno/bin/fuse 라서 아래 회색박스의 문제가 생기므로 PATH를 해줘야한다.

DSM6.x는 fusermount 가 /bin 아래이다. 그래서 기본 PATH아래 있기때문에  에러발생하지 않으므로 DSM6.x 사용자는 회색박스는 건너띌것.


명령을 내리자.

Fatal error: failed to mount FUSE fs: fusermount: exec: "fusermount": executable file not found in $PATH


에러를 뿜는다. 
https://blog.naver.com/binsoore/221214962893 블로그에도 댓글에 달았지만 해결과정을 남겨둔다.

여러 삽질 끝에 위 구문으로 돌아가서, 
executable file not found in $PATH 패쓰에 실행파일이 존재하지 않는다 는 내용이다.

fuse명령이 사용되는 줄 첨에 알고
station> find / -name fuse 

이것에 집착하였다가,
fuse가 사용하는 마운트 프로그램이 fusermount 라는 것을 알았다. 이것이 마운트에 관여.

그래서
station> find / -name fusermount
/usr/syno/bin/fuse/fusermount

과 같다. 저기서 fusermount는 실행파일이고 이것을 포함한 폴더는 /usr/syno/bin/fuse
이다.

나스의 경로를 보자
station> $PATH
-ash: /sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin:/opt/bin:/opt/sbin: not found
와 같이 나온다. 이 경로에 /usr/syno/bin/fuse 가 없다. 

그래서 
station> fusermount 해보면
당연 에러가 뜬다. 
/usr/syno/bin/fuse/fusermount 이렇게 절대경로로 해야지 실행이 되는것이다.

그래서 rclone이 수행되기 위해서 아무경로에서나 fusermount가 실행되도록 해야하므로
PATH에 추가를 해주자.
$PATH 는 기존 패스를 말한다. 기존 패스에 추가를 하는 것이므로 아래와 같이 작성한다.

station> PATH=$PATH:/usr/syno/bin/fuse

이제 다시 패스를 확인해보자.
station> $PATH
-ash: /sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin:/opt/bin:/opt/sbin:/usr/syno/bin/fuse: not found

이렇게 잘 추가되어 있음을 확인할 수 있다.

station> pwd 현재경로확인
/root
station> fusermount
fusermount: missing mountpoint argument

이제 에러는 없고 argu 를 넣어라, 즉 fusermount 에 대한 인수를 넣어서 실행하라고 뜬다.


이제 구글드라이브를 마운트해보자.

나는 팀드라이브에 TV 라는 폴더에 나스의 TV자료들을 모두 백업했다.
이제 나스의 /volume1/Gdrive/TV 폴더에 팀드라이브의 /TV 폴더를 마운트해보겠다.

구글드라이브내용이다.


터미널에서 마운트를 해본다. 읽기전용옵션이다.

rclone --config /root/.config/rclone/rclone.conf mount --umask 0 --allow-other --read-only remote:/TV /volume1/Gdrive/TV &

그리고 /volum1/Gdrive/TV 를 리스팅해본다.

1
2
3
4
5
6
7
8
9
10
11
12
Jinistation> rclone mount --umask 0 --allow-other --read-only remote:/TV /volume
1/Gdrive/TV &
Jinistation> ls /volume1/Gdrive/TV
@eaDir
Life01.mp4
[JTBC] 라이프.E02.180724.720p-NEXT.mp4
그것이 알고 싶다 E1130 180721 권력과 조폭 - 파타야 살인사건 그 후 1년 720p HDTV x264-RAiN.mkv
드라마
배한성의 고전열전 [101018]~[140413] 삼국지 수호지 난중일기.iso
예능
 



구글드라이브와 동일하게 마운트 잘되었다.



언마운트는


1
station> fusermount -/volume1/Gdrive/TV/



참고한 블로그에서 언마운트는 fusermount -uz 로 z 옵션을 추가로 주었는데 lazy 즉 느리게 안전히 언마운트하라는 옵션이다. -uz로 하니 언마운트가 되지 않아서(한참을 기다려야되는건지..)


그냥 -u만 주니 바로 언마운트가 되었다.


5. 부팅시 자동 마운트 스크립트


전에 사진폴더 마운트하기에 썻던 방식으로 sh 스크립트를 만들어서 부팅 폴더에 넣어주면 될것 같다.

http://3jini.tistory.com/70

를 참고해서


vi /volume1/pvr/S00mountcustom.sh

아래 내용으로 만들어보자. 


1
2
#!/bin/sh
rclone mount --umask 0 --allow-other --read-only remote:/TV /volume1/Gdrive/TV &




저장을 하고, 

이제 이 파일의 권한을 chmod로 변경해주고( 755, +x ) 

부팅시 시작될 수 있도록 /usr/syno/etc/rc.d 아래로 복사해준다.


1
2
3
4
5
6
7
8
9
10
11
station> ls -al /volume1/pvr/S00mountcustom.sh
----------    1 admin    users           90 Aug 10 14:51 /volume1/pvr/S00mountcustom.sh
station> chmod 755 /volume1/pvr/S00mountcustom.sh
station> chmod +/volume1/pvr/S00mountcustom.sh
station> ls -al /volume1/pvr/S00mountcustom.sh
-rwxr-xr-x    1 admin    users           90 Aug 10 14:51 /volume1/pvr/S00mountcustom.sh
station> cp /volume1/pvr/S00mountcustom.sh /usr/syno/etc/rc.d/
station> cat /usr/syno/etc/rc.d/S00mountcustom.sh
#!/bin/sh
rclone mount --umask 0 --allow-other --read-only remote:/TV /volume1/Gdrive/TV &
 




여러개의 폴더를 마운트 하고자 한다면 sh 파일에 각각 추가해주면 될 것이다.


구글 드라이브 마운트를 해주면 좋은점은,

kodi나 기타 앱에서 이 마운트된 폴더를 로컬폴더처럼 바로 지정할 수 있기때문에 편하다.

마운트를 하지 않는다면 kodi 에서 구글드라이브 애드온을 설치해서 접근하는 방법으로 해야하므로 폴더접근시 몇단계 들어가야하는 불편함, 애드온 설치의 필요 등의 단점이 있다. 



여기서 문제가 하나 있는데 부팅시에 저 구글 드라이브를 마운트하지못하면(네트워크 연결이 안되었거나, 구글드라이브에 문제가 생겼을경우) 저 스크립트대로 마운트할때까지 기다리지 않을까? 그럼 나스 부팅이 완료가 안되지 문제가 생길것도 같다.


그리고 , 읽기 쓰기 되도록

rclone mount --allow-other remote:/TV /volume1/Gdrive/TV &

해보았으나, 웹스테이션에서는 복사된것으로 보이나, 콘솔에서 이 순간 에러를 나타내었다.

그리고 실제 구글드라이브에는 반영이 되지 않았다.


따라서 

rclone으로 백업실시하고

구글마운트는 읽기 모드

로 하는것이 맞는것 같다.


이제 자동 백업스크립트만 구축하면 되겠다.





댓글을 달아 주세요

  1. 토마마토 2018.11.10 15:09

    으아..... 머리터질꺼같아요;;;

    초보를 위한 상세하고 아주아주 쉬운 설명은 없을까요 ㅠㅠ

    • BlogIcon HappyChild 2018.11.13 14:47 신고

      어느부분이 어려우신지 말씀해주시면 상세히 알려드리겠습니다.
      rclone설치(네이버 블로그 링크) 부터 차근히 해보세요.

    • 낯선풍경 2019.01.01 21:05

      ㅎㅎㅎㅎ ;

      엔지니어에게 쉬운 설명 이란..
      더 상세하고 자세한 외계어 입니다.

      웃지고 한 이야기 고요 ,

      암튼 잘보고 갑니다.

  2. 도토리 2019.04.03 08:27

    rclone 저설정을 어디에다가 하신거에요? 저걸 하면 자동마운트가 된다 이거죠? 그리고백업 스크립트는 파이썬도 가능한가요?

  3. 도토리 2019.04.05 09:35

    아하 저는 맥에서 자동 마운트를 하고싶은데 부팅을 하진 않으니 시간마다 하거나 일정시간에 마운트되도록 지정하고싶습니다 어떻게 하면 될까요?

    • BlogIcon HappyChild 2019.04.08 15:53 신고

      https://rclone.org/downloads/
      에서 맥용을 받으시고 설치과정대로 하시면 될것 같습니다. 맥 사용자가 아니라서 답변드리기 어렵습니다.

  4. sssch 2019.04.07 23:18

    질문있습니다.. 표현하기어렵네요 ㅠㅠ다

    마운트하고 드라이브에 파일 업로드시 나스에는 어떻게 파일이 생성되는지요?
    예를들어, 드라이브에 10기가 파일을 업로드 -> 나스에서 10기가 파일을 받아옴.. 인지
    실제 파일이 아닌, 10기가 파일처럼 보이는 것인지(파일을 읽거나 쓸때마다 받아오는) 궁금합니다.

    전자에선 나스에서 용량 10기가를 차지하지만, 후자에서는 용량차지를 안하게 될것같은데요. 이것도 제가 맞는지..ㅠㅠ

    • BlogIcon HappyChild 2019.04.08 15:32 신고

      마운트란 말은 , 그냥 위치 정보를 말합니다. 구글에 5TB 데이타가 있는데,
      이 구글드라이브를 나의 나스에 마운트한다고, 내 나스에 5TB를 차지하는게 아니고요. 위치를 등록한다는 개념으로 보시면 될것 같습니다.

      구글에 올린 파일이 나스의 내 폴더에 생성되는게 아니라, 단순히 업로드된 구글 폴더를 보여주는 것입니다.

    • sssch 2019.04.08 18:24

      쉽게 이해했습니다
      정말 감사합니다 !!

  5. ws 2019.04.27 19:10

    제가 구글 드라이브에 rclone으로 암호화해서 자료를 저장하고 있는데 암호화를 하다보니 iOS를 사용하는 아이패드나 아이폰인 경우에는 암호화된 자료나 영상을 볼 수가 없습니다.
    나스에 rclone mount를 해서 접근할 수 있다고 하던데 제가 나스를 보유하지 않아서 나스 대신에 VPS를 사용해 마운트하고, FTP로 접근하는게 가능한지 알고 싶습니다. 또 이럴 경우 하드웨어가 중요할까요? 아니면 인터넷 속도가 중요할까요?
    저렴한 일본 VPS 같은 경우 램 1~2GB, SSD 20~30GB 정도에 속도 측정해보면 다운로드가 3~6MB/s 정도 나오던데 이정도로도 가능한지 의견을 듣고 싶습니다.

    • BlogIcon HappyChild 2019.04.29 07:42 신고

      vps 가 가상서버인가요? 뭔지 모르겠으나 나스에 마운트나, 윈도우에 마운트도 가능한데 윈도우에서 하나, ftp 서버 구축만 되어있다면, 마운트된 나스위치를 ftp서버에서 잡아주시면 접근 가능합니다 조슨의 로딩시간이 걸립니다. 다운솓도는 회선속도에 비례합니다.

  6. 김성현 2019.05.26 18:48

    혹시 마운트 한다음 파일스테이션을 통해
    팀드라이브 -> nas 로 복사시 에러가 나지는 않으시나요?

    • BlogIcon HappyChild 2019.05.27 11:22 신고

      팀드라이브에서 나스로 복사는 안되요 기능 지원안한다고 나와요. 테스트해 볼 부분입니다. 마운트하는 방법에서 차이로 안되는건지 원래 안되는건지 찾아봐야겠습니다.
      또한 읽기 쓰기로 마운트해놓고 나스에서 팀드라이브로 복사할때도 오류가 있어서 읽기모드로 마운트 해놓아요.

  7. 다음엔 한방에 가자 2019.06.19 19:04

    안녕하세요.
    도커 설치가 안되는 DS218Play 이용자입니다. 어찌어찌해서 나스에 debian chroot 설치한 후, 데비안 환경에서 rclone, plexdrive까지 해서 구글드라이브를 연결해 두었는데요. 문제는 나스를 재부팅할 경우 모든 것이 날아가버리곤 합니다. 그래서 질문드리는데 혹시 debian chroot를 통해 설정한 것들을 나스 부팅시 debian chroot에서 실행 되도록 할 수 있는 방법이 있을까요?

  8. 김기훈 2019.07.01 13:45

    좋은 글 정말 감사드립니다. 하나하나 따라해서 백업은 성공했습니다. 자동 백업 스크립트는 구축하셨는지요? 저도 알아보고 있는데 무지해서인지 쉽게 할 수가 없네요 ㅜ