본문 바로가기
Application/NAS

[NAS] Synology DownloadStation 완료시 알림 메시지 전송 및 목록 삭제

by NAMP 2017. 1. 15.

[NAS] Synology DownloadStation 완료시 알림 메시지 전송 및 목록 삭제

출처

알림 메시지 전송

알림 토큰 생성

NofityMe에 접속하여 토큰을 발급 받습니다.

지원 메신저 중에서 라인을 누르면 QR 코드를 확인 할 수 있습니다.

휴대전화에서 라인앱을 실행하고, 친구 추가 → QR 코드를 선택하여 NotifyMe를 추가하면 알림용 링크를 확인할 수 있습니다.

새로운 알림용 링크가 생성되었습니다! 🎉
https://notify.gyubot.com/send/ABC78r021goRNXYZ?message=hello+world

링크중 가운데 있는 값이 토큰입니다. ABC78r021goRNXYZ

SSH 설정

NAS 에 관리자로 로그인 한 후

제어판 → 터미널 및 SNMP → SSH 서비스 활성화 를 합니다.

SSH 접속

putty로 NAS에 접속합니다.

login as: root
root@synology's password:
Access denied

root로 접속을 시도 할때 Access denied 가 나오면 다른 관리자 계정으로 접속하여 사용자를 변경합니다.

login as: admin
admin@synology's password:
admin@synology:~$ sudo su -
Password:
root@synology:~#

스크립트 생성

원하는 곳에 실행할 스크립트를 생성합니다. 경로 및 파일명은 다르게 지정하여도 됩니다.

vi /volume2/share/script/synology/downloadStationComplete.sh

파일 내용을 작성합니다.

#!/bin/sh

curl -d "token=[NotifyMe에서 발급받은 URL 중간 토큰]” --data-urlencode "message=Download Complete. $TR_TORRENT_NAME" https://notify.gyubot.com/send

발급 받은 토큰을 token= 다음위치에 입력합니다. 메시지 문구도 원하는 형태로 변경합니다.

#!/bin/sh

curl -d "token=ABC78r021goRNXYZ” --data-urlencode "message=$TR_TORRENT_NAME Download Complete." https://notify.gyubot.com/send

실행권한 부여

chmod 755 /volume2/share/script/synology/downloadStationComplete.sh

실행 테스트

/volume2/share/script/synology/downloadStationComplete.sh

경로 이동 후 downloadStationComplete.sh 로 실행이 되지 않는다면 앞에 ./ 를 붙여서 실행하면 됩니다. ./downloadStationComplete.sh

정상적으로 실행이 되면 아래와 같은 결과 메시지를 확인할 수 있습니다.

{"success":true,"message":"sended"}

DS Download 설정 변경

settings.json 파일 수정

vi /usr/syno/etc/packages/DownloadStation/download/settings.json

script-torrent-done-enabled, script-torrent-done-filename 두 줄의 내용을 변경합니다.

  1. false → true,
  2. "" → "/경로/스크립트 파일",
...
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/volume2/share/script/synology/downloadStationComplete.sh",
...

start-stop-status 파일 수정

vi /var/packages/DownloadStation/scripts/start-stop-status

파일을 열면 start() 함수 중에 settings.json 파일을 지우는 명령어가 있습니다. 이를 주석처리하여 실행되지 않도록 합니다.

...
start()
{
    # create @download folder and service link
    CreateDownloadTmpDir

    # 주석 처리하여 settings.json 파일이 지워지지 않도록 합니다. 
    #rm ${PACKAGE_DIR}/etc/download/settings.json
    rm ${PACKAGE_DIR}/etc/amule/statistics.dat

    if [ ! -f "/lib/libsynotrigger.so" ]; then
        ln -s "${PACKAGE_DIR}"/target/lib/libsynotrigger.so /lib/libsynotrigger.so
    fi

    CreatePythonModuleLink

    # start services
    $SCRIPTSPATH/S25download.sh start
}
...

pkg_DownloadStation 파일 수정

vi /etc/apparmor.d/pkg_DownloadStation

#transmissiond 밑 부분애 한줄을 추가합니다. /volume*/share/script/synology/{,**} rix,

DSM5.2 이후로 부터는 apparmor 쪽에 권한을 주어야만 스크립트을 실행할 수 있다고 합니다.

...
#transmissiond
    /dev/crypto                                         rw,
    /usr/share/samba/codepages/upcase.dat               r,
    /usr/share/samba/codepages/lowcase.dat              r,
    /usr/syno/smb.conf                                  r,
    /volume*/share/script/synology/{,**}                rix,
...

NAS 재시작

SSH에서 reboot 를 실행합니다.

또는 웹으로 NAS 접속후 다시 시작을 클릭합니다.

다운로드 완료 목록 삭제

스크립트 수정

DownloadStation에서 정상적으로 스크립트가 호출되면, 스크립트를 수정하여 완료시 해당 목록애 지워지도록 합니다.

vi /volume2/share/script/synology/downloadStationComplete.sh

밑 부분에 완료된 목록들을 DB 에서 삭제하는 코드를 추가합니다.

#!/bin/sh

# send completeed item title
curl -d "token=ABC78r021goRNXYZ”" --data-urlencode "message=$TR_TORRENT_NAME Download Complete" https://notify.gyubot.com/send

# delete completed list
psql -t -A -U postgres -d download -c "delete from download_queue where status=5"

테스트

downloadStationComplete.sh 파일을 실행합니다.

{"success":true,"message":"sended"}DELETE 0

NotifyMe 전송 결과 메시지 뒤에, DELETE 숫자가 출력됩니다. DELETE 뒤의 숫자는 목록에서 지워진 수를 의미합니다.

댓글