Transmission 완료된 파일 이동 스크립트
2091 hit since 2009/05/06 23:17
Tweet
전에는 C로 코딩해서 컴파일을 해서 사용했었는데, 스크립트로도 가능할듯 하여 만들어봤다. 실은 소스코드를 잘못 관리해서 지워져버렸다;; 복잡하진 않아서 금방 만들순 있지만, 새로운 것을 시도해본다는 의미로... 깔끔하지는 않지만, 흐름은 간단하다!
- root@DNS-323:/# cat /ffp/bin/move_complete.sh
- #!/ffp/bin/bash
- #
- # move_complete.sh
- #
- # Transmission 1.5x, DNS-323
- #
- PATH=/ffp/sbin:/ffp/bin:/usr/sbin:/sbin:/usr/bin:/bin
- STATUS=`/ffp/bin/transmission-remote 29091 -l`
- LINECOUNT=`echo "$STATUS" | wc -l`
- # Set Seperator
- IFS="
- "
- I=1
- # Main Loop for each line
- for LINE in `echo "$STATUS"`
- do
- if [ $I -gt 1 ] && [ $I -lt $LINECOUNT ]
- then
- # Process Line
- ID=${LINE:0:4}
- ID=${ID// /}
- DONE=${LINE:7:3}
- DONE=${DONE// /}
- NAME=${LINE:70}
- echo "$ID: $NAME: $DONE%"
- # Check 100% complete
- if [ $DONE -eq 100 ]
- then
- /ffp/bin/transmission-remote 29091 -t $ID -r
- /ffp/bin/mv "/mnt/HD_a2/.transmission-daemon/temp/$NAME" "/mnt/HD_a2/incoming/"
- echo "Complete!"
- fi
- fi
- I=$[$I+1]
- done
telnet으로 DNS-323에 접속한 뒤에 위의 스크립트를 실행하면 100% 완료된 파일들을 seeding 목록에서 지우고, 완료된 파일들을 특정 디렉토리로 이동시킨다.
수동으로 실행해도 되지만, cron을 이용하면 편하다.
- root@DNS-323:/# crontab -l
- 32 2 * * * /usr/sbin/rtc -s
- 30 2 2 * * /usr/sbin/rtc -c
- 59 1 * * * /usr/sbin/daylight &
- 15,45 7-22 * * * /ffp/bin/move_complete.sh >> /ffp/move_complete.log
단점이라면, 다운로드를 하지 않을때도 완료된 파일을 체크하기 위해서 HDD를 깨워야된다. transmission-remote파일만 root디렉토리에 복사해두고 실행하게 하면 괜찮을런지.. 음..
참고) 당연한 얘긴데, 위의 스크립트는 본인의 환경에 맞게 값들을 변경해줘야한다.


Trackback (0)
Comment (1)