[PlexDrive, 시놀로지(or xpenology)에 설치하기 강좌 4편] plexdrive 본격 설치하기


안녕하세요. 이수아비입니다. 

이 강좌를 하루만에 끝낼려고 했는데 길어져도 너무 길어져 버렸네요.이제 마지막으로 plexdrive를 설치하는 강좌만 남았으니 힘내서 포스팅하겠습니다.


시놀로지(or XPEnology)에 plexdrive 를 설치하는 강좌 4편을 시작하겠습니다. 이번 강좌는 ssh에 접속하여 plexdrive 를 설치하는 방법에 대해 진행하게 됩니다.

본 강좌는 Hyper-V에 설치한 XPEnology 5.2-5967 시스템을 기준으로 진행됩니다.






 [ plexdrive github 사이트 참고 ] 

https://github.com/dweidenfeld/plexdrive





강좌 4편 목차

[PlexDrive, 시놀로지(or xpenology)에 설치하기 강좌 4편] plexdrive 본격 설치하기

  6. ssh를 이용한 plexdrive 설치 및 자동 마운트




6. ssh를 이용한 plexdrive 설치 및 자동 마운트



본격적으로 plexdrive 설치 하기 전에 본인 나스 환경에 맞게 강좌 3편에서 다운로드 받은 plexdrive-first.sh 파일과 plexdrive-mount.sh 파일을 수정해야됩니다.


파일 스테이션 실행하여 해당 파일을 우클릭하게 되면 메뉴가 나오는데 여기서 [텍스트 편집기로 열기] 를 실행합니다.

[텍스트 편집기] 패키지는 시놀로지 5.2 버전은 기본 제공하지만 6.1 버전 사용자는 패키지 센터에서 따로 설치해야 되는걸로 알고 있습니다.


< plexdrive-first.sh >

#!/bin/ash



# your mount folder path

MOUNT_PATH='/volume1/gdrive'

PLEXDRIVE_PATH='/volume1/work/.plexdrive'

TMP_PATH='$PLEXDRIVE_PATH/cache'



chmod 755 $PLEXDRIVE_PATH/plexdrive-mount.sh



$PLEXDRIVE_PATH/plexdrive $MOUNT_PATH \

-o allow_other,allow_non_empty_mount \

--gid=100 \

--clear-chunk-max-size=50G \

--chunk-size=10M \

--speed-limit=7M \

--refresh-interval=1m \

-c $PLEXDRIVE_PATH \

-t $TMP_PATH \

-v 2


exit



< plexdrive-mount.sh >

#!/bin/ash


# your mount folder path

MOUNT_PATH='/volume1/gdrive'

PLEXDRIVE_PATH='/volume1/work/.plexdrive'

TMP_PATH=$PLEXDRIVE_PATH'/cache'


echo $TMP_PATH

#----------------------------

# unmount script

# run # /your_path/plexdrive.sh unmount

# ex) # /volume1/work/.plexdrive/plexdrive-mount.sh unmount

if [ $1 ] && [ $1 = "unmount" ] 

then

echo '>> unmounting'

umount $MOUNT_PATH

fusermount -uz $MOUNT_PATH

exit

fi




#----------------------------

# crontab mount script

# run # /your_path/plexdrive.sh

# ex) # /volume1/work/.plexdrive/plexdrive-mount.sh

MOUNTTYPE=`cat /proc/mounts | grep $MOUNT_PATH | awk '{print $3}'`

echo $MOUNTTYPE



if [ $MOUNTTYPE ] && [ $MOUNTTYPE = "fuse" ]

then

echo '>> aleady mounted'

else

echo '>> mounting'

umount $MOUNT_PATH

fusermount -uz $MOUNT_PATH

$PLEXDRIVE_PATH/plexdrive $MOUNT_PATH \

-o allow_other,allow_non_empty_mount \

--gid=100 \

--clear-chunk-max-size=50G \

--chunk-size=10M \

--speed-limit=7M \

--refresh-interval=1m \

-c $PLEXDRIVE_PATH \

-t $TMP_PATH \

-v 2 &


echo '>> sleep 5..'

sleep 5

echo '>> ls'

ls $MOUNT_PATH

echo '>> end'

fi

exit

두파일 모두 수정하는 부분은 같습니다.

위에 빨간색으로 표시된 부분을 수정하면 되는데 

MOUNT_PATH 는 구글드라이브가 마운트 될 폴더이고

PLEXDRIVE_PATH 는 plexdrive 파일이 있는 폴더 입니다.

본 강좌를 똑같이 진행했다면 수정하지 않아도 됩니다.


초록색 부은 plexdrive 실행 옵션입니다. 전체 옵션 내용은 번외 포스팅에 있으니 참고 해서 본인에 맞는 옵션들을 설정하면 됩니다.

제가 적용한 옵션들을 살펴보면

 -o allow_other,allow_non_empty_mount 

fuse 에서 사용되는 옵션입니다. 이부분은 필수적으로 적용해야 됩니다

 --gid=100 

마운트된 폴더에 접속할 수 있는 그룹 권한입니다. 제가 알기로 시놀로지는 administrators 그룹은 101, users 그룹은 100 입니다. 터미널 접속해서 'id' 명령어를 실행하면 알 수 있습니다.

 --clear-chunk-max-size=50G 

캐시파일 용량을 50기가로 정하는 옵션입니다. 캐시파일 유지기간을 정하는 옵션은 이렇게 용량으로 제한하는 옵션 외에 --clear-chunk-age 옵션이라고 시간으로 정하는 옵션이 있습니다.  둘 중 하나만 적용해야 되며 제가 테스트 해본 바로는 용량으로 제한하는게 가장 효율이 좋았습니다.

 --chunk-size=10M 

다운로드 받는 캐시파일 하나의 크기 입니다. 인터넷 환경에 따라 이 옵션에서 파일 용량을 올리면 속도가 빨라질 수 있습니다.

 --speed-limit=7M 

캐시파일 다운로드 받는 최대 속도인데 실제 적용이 안되는 듯한 느낌이 드네요.

 --refresh-interval=1m 

마운트된 구글 드라이브 폴더를 새로고침하는 간격 입니다.

 -c $PLEXDRIVE_PATH 

강좌 3편에서 업로드한 config.json 파일이 있는 폴더 위치입니다.

 -t $TMP_PATH 

캐시폴더 위치입니다.

 -v 2 

로그 설정입니다. 단계별로 설정할 수 있습니다.


plexdrive-mount.sh 파일의 기능은 2가지입니다.

 ./plexdrive-mount.sh 

이렇게 실행하면 구글드라이브를 마운트하는 명령이고

 ./plexdrive-mount.sh unmount 

이렇게 실행하면 마운트 해제하는 명령입니다.


plexdrive-mount.sh 파일은 최종적으로 시놀로지 작업 스케줄러에 1분 또는 5분간격으로 실행되게 등록할 예정입니다. 실행되는 내용은 우선 마운트 상태인지 확인 후 마운트 상태라면 스크립트를 끝내고 마운트 상태가 아니라면 plexdrive를 실행하여 마운트하고 5초 뒤에 ls 명령어로 폴더 내용을 한번 조회하고 끝나게 됩니다. 


ls 명령어를 사용하는 이유는 마운트 후 한번이라도 폴더를 조회해야 파일스테이션에 마운트된 공유폴더가 표시되게 됩니다. 마운트만 한 상태에서 파일스테이션에 나타나지 않습니다.


[텍스트 편집기]로 필요한 부분을 수정했으면 저장을 합니다.



plexdrive 를 설치하기 위해서는 시놀로지(or XPEnology)의 ssh에 접속해서 진행해야 됩니다. 그러기 위해서 시놀로지 제어판에서 ssh 접속 허용해야 하고 보안을 위해 내부 네트워크망에서만 진행하길 권해드립니다.


우선 ssh 접속 프로그램의 대명사인 putty 프로그램은 다운로드 받습니다.


 [putty 다운로드

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html


위 링크로 접속 하셔서 putty.exe 파일을 다운로드 받으면 됩니다. 본인 PC 운영체제가 32비트인지 64비트인지 확인하고 받으면 됩니다. 잘 모르겠다면 그냥 32비트 파일 받으면 됩니다. 


putty_32.exe

putty_64.exe

(혹시 몰라 블로그에도 첨부합니다. 오늘 기준 0.69버전 입니다.)



이제 시놀로지에서 ssh 접속을 허용하겠습니다.

꼭 내부망에서 하는걸 권해드립니다!


우선 [제어판]을 실행하여 ①번 [사용자] 탭을 클릭하여 admin 계정 상태가 정상인지 확인합니다. 

사용 안함이 되어 있다면 [편집]을 클릭하여 계정을 활성화 시켜야 됩니다.



[제어판]에서 ①번 [터미널 및 SNMP] 탭을 선택합니다.

②번 [SSH 서비스 활성화]체크하고 포트는 기본 22번 포트로 두고 ③번 [적용]을 클릭하면 이제 ssh에 접속할 수 있습니다.



아까 다운로드 받은 putty를 실행합니다.

설치 프로그램이 아니라서 바로 실행됩니다.

①번 [Host Name] 부분에 시놀로지 IP주소를 입력하고고 [Port] 부분에 22를 입력합니다. ②번 [SSH]를 선택한 후 ③번 [Open]을 클릭하면 터미널에 접속됩니다.



지금부터 터미널 작업을 진행하기 때문에 오타 없이 잘 입력해야 됩니다!


 login as : 가 나오면 root 를 입력합니다.

 password : 가 나오면 시놀로지 admin 계정의 비밀번호를 입력합니다.

아마 password입력할 때 입력한 글자가 안보일테지만 입력되고 있으니 당황 하지말고 다 입력 후 엔터를 칩니다. 

정상적으로 로그인 된다면 위 이미지와 같이 나올겁니다. 이미지상에 XPE_5_2_VM 은 제가 시놀로지 설치할 때 정한 시놀로지 이름입니다. 아마 시놀로지 6.1 버전에서 작업하시는 분은 터미널에 출력되는 모양 다를겁니다. 아래 내용은 똑같으니 잘 진행 하면 됩니다.


이제 순서대로 입력해 봅니다.

 cd /volume1/work/.plexdrive 

강좌 3편에서 생성한 work폴더안에 .plexdrive 폴더로 이동합니다.

 ls 

이 폴더에 강좌 3편에서 넣어둔 파일들이 보이네요.

 ./plexdrive-first.sh 

처음 마운트하기 위해 작성한 쉘 스크립트를 실행하는데 결과는 퍼미션 에러가 뜨네요.

기본적으로 .sh 파일 실행권한 설정이 안되어 있기 때문에 권한설정을 해줍니다.

 chmod 755 ./plexdrive-first.sh 

정상적으로 퍼미션 설정이 되었다면 아무것도 안뜨게 됩니다.

만약 무언가 안내사항이 출력되었다면 오류난게 분명하니 본인 나스 상황에 맞는 방법을 찾으시는 수 밖에 없습니다. ㅠ

 ./plexdrive-first.sh 

다시 스크립트를 실행합니다. 

(참고로 앞에 './'  이부분은 현재 폴더를 뜻 하는 것입니다.)



첫 실행이라면 ①번과 같이 url 주소가 나올텐데 config.json 파일의 API키에 맞게 url주소가 생성됩니다.

여기서 ①번 밑줄친 부분(url주소)을 드래그로 선택한 후 마우스 우클릭을 하게 되면 클립보드에 복사가 되지만 ②번과 같이 표시되면서 실행이 종료되어 버립니다.

당황하지 말고 복사된 주소를 웹브라우저에 붙여넣기 후 접속합니다.



마운트할 구글 드라이브 계정으로 로그인하면 위 이미지와 같은 화면이 나오고 [허용]을 클릭하면 [코드]가 생성됩니다.

[코드]를 복사합니다.


다시 터미널 화면으로 돌아와서 ③번처럼 다시 스크립트를 실행합니다.

 ./plexdrive-first.sh 

방금 복사한 [코드]를 넣어야 되는데 ④번 위치에 커서가 있으면 마우스 우클릭하게 되면 복사한 [코드]가 붙여넣기가 됩니다.

정상적으로 코드가 입력이 되었다면 엔터를 칩니다.

[코드]가 맞다면 구글 드라이브를 마운트하게되고 캐시작업을 진행하게 됩니다.

아마도 몽고디비에 미리 폴더/파일 구조를 넣는 것 같습니다.


구글 드라이브 용량에 따라 시간이 걸릴 수 있으며

 First cashe build process finished! 

라는 안내글이 나온다면 일단 첫 캐싱이 끝난 상태입니다.

제대로 마운트 되었는지 확인하고 싶다면 이 상태에서 새로운 putty를 실행해서 확인해 볼 수 있습니다.


실행된 터미널에 ①번 아이콘을 클릭하면 메뉴가 나오는데 여기서 ②번 [Duplicate Session]을 클릭하면 새 터미널을 띄우면서 지금 접속된 터미널에 다시 접속할 수 있습니다. 


똑같이 root 로 로그인해서 명령창에 다음과 같이 입력합니다.

 ls /volume1/gdrive 

해당 경로는 마운트된 구글 드라이브 경로이고 만약 결과 목록이 구글 드라이브와 같이 나온다면 정상적으로 마운트 된 상태입니다. 


다시 처음 실행한 터미널로 돌아갑니다.


①번 처럼 안내 글이 나오고 멈춘 상태에서 [Ctrl] + c 를 누르면 ②번 처럼 마운트가 해제 된다는 내용과 함께 종료됩니다.


ssh에 접속해서 해야될 작업은 끝났습니다. 

putty를 종료하고 시놀로지 화면을 띄웁니다.


[제어판]을 실행해서 ①번 [작업 스케줄러] 탭을 선택합니다.

②번 [생성]을 클릭해서 [사용자 정의 스크립트]를 클릭하면 [작업 생성] 화면이 나옵니다. ③번 [일반] 탭을 선택한 후 이미지와 같이 설정합니다.


작업 : plexdrive-mount

(원하는 이름으로 입력하면 됩니다.)

사용자 : root

활성화 됨 : 체크

사용자 정의 스크립트 : /volume1/work/.plexdrive/plexdrive-mount.sh

(plexdrive-mount.sh 파일 경로)



①번 [스케줄] 탭을 선택합니다.

이미지와 같이 설정합니다.


다음 일수 후 실행 : 매일

첫 실행 시간 : 00:00

주기 : 매 5분마다

('매 1분마다' 선택해도 됩니다.)

마지막 실행시간 : 23:55


반복 실행 시간은 본인에 맞게 설정 하면 되고 설정이 완료되면 [확인] 을 눌러 스케줄이 실행되게 합니다.


이제 매 5분마다 쉡 스크립트를 실행하면서 마운트가 되어 있다면 스크립트를 그냥 종료하고 마운트가 해제되어 있다면 plexdrive를 실행하여 마운트를 실행하게 됩니다.


현 상태에서는 스케줄 시간이 될때까지 마운트가 안된 상태이기 때문에 수동으로 실행시켜 줍니다.


[작업 스케줄러] 화면에서 실행할 스케줄러(스크립트)를 선택 후 ①번 [실행]을 클릭해서 안내창이 나오면 ②번 [예]를 클릭합니다.


5초 뒤 파일스테이션을 실행 시켜서 마운트 시킨 공유폴더를 열어보면 구글 드라이브가 정상적으로 마운트 된 걸 볼 수 있습니다. 

참고로 시놀로지 나스를 재부팅하면 바로 마운트가 되지 않을 수 있습니다.  스케줄러 시간이 되면 마운트 되지만 바로 마운트 시키고 싶다면 수동으로 스크립트를 실행 시키면 됩니다. 시놀로지 6.1 버전에서는 작업 스케줄러에 '부트업' 시 실행되게 하는 방식이 있는데 여기에 쉘 스크립트를 등록해도 마운트 되지 않을 겁니다. docker에 있는 mongodb가 실행이 된 후에 plexdrive를 실행 시켜야 되는데 '부트업'으로 스케줄을 등록하면 docker 패키지보다 먼저 실행되서 plexdrive가 정상적으로 실행되지 않는 것 같습니다.





이상으로 시놀로지(or XPEnology)에 plexdrive를 설치하는 강좌가 끝났습니다. 이후에는 plex에 접속해서 라이브러리 추가할때 마운트된 공유폴더를 선택하면 됩니다.  plexdrive 로 마운트된 폴더는 SMB, FTP, WEBDAV에도 나오게 됩니다. 단, 읽기 전용입니다. ㅎㅎ




만약 안된다면 댓글로 질문 남겨주세요. 본 강좌는 제 상황에 맞춰 진행된 강좌이기 때문에 본인의 나스 설정이나 상황에 따라 조금씩 다른 부분이 있을 수 있습니다.

 

강좌 번외로 plexdrive 옵션에 대해 추가로 포스팅할 예정입니다.




댓글