[NAS] Synology DownloadStation 완료시 알림 메시지 전송 및 목록 삭제
출처
- 시놀로지 DS Download(DS Get) 작업이 완료되었을 경우, 메신저로 알림 받기
- Auto clean & delete torrents from Downloadstation
- Download Task Notification
- NotifyMe
- putty
- VI 에디터 사용법
알림 메시지 전송
알림 토큰 생성
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 두 줄의 내용을 변경합니다.
- false → true,
- "" → "/경로/스크립트 파일",
...
"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 뒤의 숫자는 목록에서 지워진 수를 의미합니다.
'Application > NAS' 카테고리의 다른 글
[NAS] Synology NAS 에서 tt-rss 설치 오류 (0) | 2017.03.31 |
---|---|
[NAS] synology download station 정보 읽어오기 (0) | 2017.03.19 |
[NAS] 시놀로지 파일삭제 스케쥴러 등록 (0) | 2017.03.10 |
트랜스미션 기본 설정 변경 (0) | 2016.08.25 |
Synology Plex 서버 못 찾는 경우 (2) | 2016.08.04 |
댓글