IT/라즈베리파이2

트랜스미션 다운완료 후 토렌트 자동삭제

단디1969 2015. 6. 23. 14:21


원문 : http://www.jhem.kr/41


라즈베리파이2에 토렌트 서버 돌리는데 Transmission-Daemon에는 다운로드 완료 시 , torrent 목록을 매번 수동으로 제거해야 한다. 이는 받기만 하지 말고 배포도 적당히 하라는 제작자의 의도인 듯하다. 그러나 나는 그럴만한 여유가 없다. 그래서 방법을 찾아보니 역시 있다. 트랜스미션 내부에 이런 기능을 준비하고 있었던 것이다.


원리는 트랜스미션의 셋팅파일내부의 완료시 스크립트 실행기능을 활용하는 것이다.

아래 구조는 원문에서 가져왔고 정확히는 모르겠으나 해보니 잘 동작한다.


1. Transmission daemon 정지

   pi@raspberrypi ~ $ sudo /etc/init.d/transmission-daemon stop


2. /etc/transmission-daemon/settings.json 편집

   pi@raspberrypi ~ $ sudo nano /etc/transmission-daemon/settings.json


      이것을

 "script-torrent-done-enabled": false,

 "script-torrent-done-filename": "",


이렇게 스크립트실행하도록 변경

 "script-torrent-done-enabled": true,

 "script-torrent-done-filename": "/home/pi/Scripts/AutoDelete.sh",

디렉토리와 파일이름은 임의적임. 알아서 변경할 것


3. 디렉토리 생성/권한 주기

   pi@raspberrypi ~ $ sudo su  (매번 sudo 를 사용하기 귀찮으니 슈퍼유저 권한으로 변경)

   root@raspberrypi:~# mkdir /home/pi/Scripts

   root@raspberrypi:~# chmod 777 /home/pi/Scripts

   root@raspberrypi:~# chown -R pi /home/pi/Scripts


3. 스크립트 제작

   root@raspberrypi:~# nano /home/pi/Scripts/AutoDelete.sh


* 밑에 복사하고 나서 빨강글자는 모두 삭제해야 함.

#!/bin/sh

SERVER="포트번호 --auth 아이디:비번"

: /etc/transmission-daemon/settings.json 설정하였던 포트번호, 아이디, 비번을 정확하게 입력하도록 주의.


TORRENTLIST=`transmission-remote $SERVER --list | sed -e '1d;$d;s/^ *//' | cut --only-delimited --delimiter=" " --fields=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

    fi

done 

- Cont'l-O, Y, Cont'l-X


4. 실행 가능하게 

   root@raspberrypi:~# chmod +x /home/pi/Scripts/AutoDelete.sh


5. 다시 데몬실행

   root@raspberrypi:~# /etc/init.d/transmission-daemon restart


실행해 보니 잘 동작한다. http://192.168.1.**:9091/transmission/web/에서 확인하면 전송완료되고 1~2초 뒤에 Web에 표시된 torrent가 자동으로 삭제되는 것을 확인할 수 있다.