눈 내린 세상

asus ac68u 트랜스미션 토렌트 다운 완료 후 자동 삭제 및 텔레그램 알림 받기 본문

NAS(asus AC1900 = rt-AC68U)/transmission 설치 및 설정

asus ac68u 트랜스미션 토렌트 다운 완료 후 자동 삭제 및 텔레그램 알림 받기

녹은눈사람 2018. 3. 15. 17:56

목적.

1. 토렌트 다운 완료 후 transsmisson에서 토렌트 리스트 자동 삭제.

2. 토렌트 다운 완료 후 텔레그램으로 알림받기.

3. 기존 텔레그램봇에 대한 내용은 많으나 asus 공유기 ac1900(ac68u)에 설치 과정은 쉽게 찾을 수 없어 작성. 


준비사항.

1. 텔레그램 어플. - 플레이스토어에서 다운.


우선 텔레그램을 설정 해보자.

텔레그램을 설치하고 BotFather 와 대화 시작.

나같은 경우 이전에 텔레그램봇을 실행하려 했다가 실패해서 남은 흔적이 있다..


/newbot 입력 -  새로운 봇을 만듦.

snow - 나의 닉네임. 원하는거 써주면 된다.

snowlbot - 나의 ID. 원하는대로 수정. 누군가 쓰고 있으면 사용불가. 뒤에 꼭 bot를 붙여줘야 된다. 보통_bot 으로 많이들 쓰는듯.

snowbot이나 owlbot은 이미 누가 사용중이라 사용불가.

밑의 token은 컴퓨터에서 사용하기 쉽게 컴퓨터의 메모장이든 어디든 옮겨준다.

보통 숫자:알파벳대소문자혼합 이런식으로 이루어져있다.

숫자와 알파벳 부분 모두 필요하다.

e.g) 54645:AAdaDsQWEs


이제. CHAT ID가 필요하므로 다음과 같이 CHAT ID를 알아내보자.

위의 t.me/Snowlbot 를 클릭하면 자신이 만든 봇과 채팅을 할 수 있다.


채팅방에 들어가서 아무거나 입력.

채팅을 해줘야 아래 작업이 가능하므로.

혹시라도 아래 작업이 제대로 되지 않는다면 내가 만든봇에게 다시 말을 걸어주자.



https://api.telegram.org/bot토큰/getUpdates

브라우저(크롬, 익스등등) 주소창에 위와 같이 입력한다.

bot토큰에 위에서 따로 기록된 token을 입력하자. 

e.g) https://api.telegram.org/bot54645:AAdaDsQWEs/getUpdates

그럼 위와 같은 화면이 나오는데 

"chat":{"id":540000,"

저기서 숫자만이 우리가 필요로 하는 CHAT ID 이다.

역시 따로 메모해두자.


CHAT ID가 제대로 됐는지 다음과 같이 텔레그램봇을 시켜보자.

https://api.telegram.org/bot토큰/sendMessage?chat_id=챗아이디&text=Hello

역시 인터넷 브라우저 주소창에 위와 같이 입력하면 

봇이 나에게 말을 건다.

여기까지 똑같이 따라왔다면 텔레그램 설정이 끝이난다.


이제 putty를 켜서 스크립트를 작성해보자.

opkg install transmission-remote-openssl

트랜스미션 리모트를 설치해준다. 보통 트랜스미션 설치 강좌에는 이 과정이 없다.


그리고 기존의 트랜스 미션 세팅을 바꿔준다.

/opt/etc/init.d/S88transmission stop

nano /opt/etc/transmission/settings.json

트랜스미션을 작동 중지 시키고

설정파일에서 아래와 같이 바꿔준다.

script-torrent-done-enabled : true

script-torrent-done-filename : "/opt/scripts/transmission-done.sh"

밑의 경로는 /opt/sh파일이 있는 폴더명/sh파일이름

이번 강좌에서는 저 경로와 파일이름을 쓰기로한다.

원하는대로 바꿔줘도 무방.

CTRL+O, 엔터, CTRL+X로 빠져나오고

/opt/etc/init.d/S88transmission start

다시 트랜스 미션을 실행.

mkdir /opt/scripts

스크립트 폴더를 생성.

이 폴더의 이름을 변경하면 위에서

"/opt/scripts/transmission-done.sh"

이 경로의 폴더명도 변경해주면 된다.


스크립트 생성 및 작성.

nano -w /opt/scripts/transmission-done.sh

transmission-done.sh 가 위에서 말한 파일 이름이다.

.sh 앞에는 원하는 대로 바꿔줘도 된다.

"/opt/scripts/transmission-done.sh"

파일이름을 변경하려면 위의 경로 파일이름을 같이 변경해준다.



아래와 같이 트랜스미션 자동 삭제 스크립트를 만들어 준다.

#!/bin/sh
# telegram configuration"
SERVER="PORT --auth ID:PASSWORD"
# token
TOKEN='토큰'  
# CHAT_ID
CHAT_ID="CHATID"
URL='https://api.telegram.org/bot'$TOKEN
MSG_URL=$URL'/sendMessage?chat_id='

sleep 1s

# torrent remove

TORRENTLIST=`transmission-remote $SERVER --list | sed -e '1d;$d;s/^ *//' | cut -s -d " " -f 1`
for TORRENTID in $TORRENTLIST

do
    DL_COMPLETED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "Percent Done: 100%"`
    STATE_STOPPED=`transmission-remote $SERVER --torrent $TORRENTID --info | grep "State: Seeding\|Stopped\|Finished\|Idle"`
    if [ "$DL_COMPLETED" ] && [ "$STATE_STOPPED" ]; then
        transmission-remote $SERVER --torrent $TORRENTID --remove
        # telegram message send
        curl --data-urlencode "text=$TR_TORRENT_NAME download completed." "$MSG_URL"$CHAT_ID"&"
    fi
done


위의 트랜스미션 자동 삭제 스크립트를 붙여넣은 후

port/ID/PASSWORD/토큰/CHATID

이렇게 5개 부분을 수정해준다.

port - 트랜스미션 포트. 보통은 9091

ID/PASSWORD - 트랜스미션 접속 ID와 비밀번호

토큰 - 텔레그램봇에서 받은 token. 숫자:알파벳대소문자혼용 으로 이루어져있다.

CHATID - 내가 만든 봇의 챗아이디. 숫자로 구성.

다 입력했다면

CTRL+O, 엔터, CTRL+X 로 저장하고 빠져나온다.

chmod 755 /opt/scripts/transmission-done.sh

방금 만든 트랜스미션 자동 삭제 스크립트에 대한 권한을 설정해준다.

755로 해줘도 되고 777로 해줘도 된다.

777 소유자 및 기타 쓰기 읽기 실행 모두 가능.

755 소유자는 쓰기 읽기 실행 모두 가능. 소유자가 아니면 읽기랑 실행만 가능.


이제 트랜스미션을 이용해 토렌트를 다운 받으면

다운 완료 후 텔레그램으로 알림이 오고 트랜스미션에서 토렌트는 자동으로 삭제가 된다.


참고로 개인이 만들어서 배포하는 텔레그램봇은 꽤 있고 성능은 제각각이다.

대표적으로 곰탱이봇이나 망토봇이 있다.

저런 봇들의 경우 텔레그램 자신의 봇에게 어떠한 메시지를 보내면 자동으로 토렌트를 다운하는 기능도 있다.

다만 데비안을 설치해야 작동한다는 내용이 있어

나같은 경우는 굳이 그 정도 기능까진 필요치 않고 데비안 설치가 힘들어 설치하지 않았다.


출처 및 참고

https://www.clien.net/service/board/cm_nas/11885152

https://blog.zeroidle.com/857

Comments