[OMV6] 다운 완료한 torrent 자동 삭제하기

 안녕하세요?

이번엔 OMV6에 설치해 둔 Transmission에서 다운로드 완료한 torrent를 자동 삭제하는 방법을 알아 보겠습니다.

먼저, 삭제 명령어 담은 Shell Script를 생성해야 하므로, Putty를 실행합니다. 그리고 Script를 만들 경로로 이동합니다. 

** 저의 경우 OMV wiki에 권고사항에 따라 ssd/appdata/에 저장하였습니다. 라즈베리파이 본체의 SD Card에 저장하셔도 상관 없습니다.

-명령어 : cd /ssd/appdata/transmission

Shell Script 작성할 경로 이동

그리고 sudo vi 파일명.sh를 입력하여 vi editor로 진입합니다.

-명령어 : sudi vi 파일명.sh

Vi editor를 이용한 Shell Script 생성

vi editor에 아래의 script를 자신의 Transmission 접속 아이디와 비밀번호로 변경 후 붙여 넣습니다. 총 3군데가 있습니다.

#!/bin/sh

TORRENTLIST=`transmission-remote --auth=아이디:비밀번호 --list | sed -e '1d;$d;s/^ *//' | cut --only-delimited --delimiter=' ' --fields=1`

 

for TORRENTID in $TORRENTLIST

do

echo "* * * * * Operations on torrent ID $TORRENTID starting. * * * * *"

 

DL_COMPLETED=`transmission-remote --auth=아이디:비밀번호 --torrent $TORRENTID --info | grep "Percent Done: 100%"`

if [ "$DL_COMPLETED" != "" ]; then

echo "Torrent #$TORRENTID is completed."

echo "Removing torrent from list."

transmission-remote --auth=아이디:비밀번호 --torrent $TORRENTID --remove

else

echo "Torrent #$TORRENTID is not completed. Ignoring."

fi

echo "* * * * * Operations on torrent ID $TORRENTID completed. * * * * *"

done

출처 : OMV Forum

붙여 넣기 후 저장을 해줍니다.

-명령어 : :wq

torrent 삭제 Shell Script 작성 완료

그리고 ls 명령어를 입력하면 생성한 파일을 확인할 수 있습니다. (저의 경우 autoremove.sh)

-명령어 : ls

Shell Script 생성 확인

리눅스 계열은 파일에 실행 권한을 부여해주어야 하는데, 아래의 명령어를 입력해 줍니다.

-명령어 : sudo chmod 755 파일명

Shell Script 실행 권한 부여

다시 ls를 입력해 보면, 생성한 파일이 녹색으로 변해 있을 것입니다.

Shell Script 실행 권한 확인

이제 Shell Script를 실행할 준비가 끝이 났습니다.

잠깐 chmod에 대해 설명해 드리면, 아래의 표와 같습니다. 755만 기억하셔도 무방하세요.

읽기-4, 쓰기-2, 실행-1

각 권한의 합에 따라 결과가 의미가 부여  

Ex) 읽기실행 = 5 / 읽기쓰기실행 = 7

파일권한 부여 명령어

소유자

그룹 사용자

기타 사용자

Chmod

7

5

5


생성한 파일이 잘 작동하는지 확인해 보겠습니다. 전 이전에 추가해 두었던 라즈베리파이 OS가 Seeding이 되어 있는 상태입니다. 아무 파일이나 Seeding 상태를 유지한 상태로 테스트를 진행해 주세요.

Seeding 중인 torrent 파일

Putty에 아래의 명령어를 입력해 봅니다.

-명령어 : sudo docker exec transmission /config/파일명(저의 경우 autoremove.sh)

Shell Script 실행 명령어 입력

그럼 작업을 완료했단 메시지와 torrent가 삭제될 것입니다.

torrent 삭제 Shell Script 실행 완료

매번 명령어를 입력하여 torrent를 삭제할 순 없겠지요? 보통 리눅스 계열을 오래 써오신 분들은 Crontab을 이용하실 것입니다. 하지만 저는 문자 커맨드는 익숙하지 않아, GUI 형식인 OMV를 활용해 보겠습니다. 같이 방법을 확인해 보시지요.

먼저, OMV 관리자 페이지에서 [시스템]-[Scheduled Tasks]로 이동 후 생성(+)을 클릭해 주세요.

OMV Scheduled Tasks 화면

그럼 작업시간을 설정하는 창이 보이는데, 아래에 제가 주석을 단 것을 참고하여 예약작업을 작성합니다. 제 예시는 매5분 autoremove.sh를 실행한다는 작업의 예시입니다.

** Crontab 상 [*/5 * * * * root /config/autoremove.sh]와 같습니다.

매 5분 명령어 실행 예시

저장 후 Pending configuration changes까지 적용합니다. 다시 Scheduled Tasks 메뉴에 가시면 어떤 일정으로 어떤 명령어를 수행하는지 직관적으로 확인이 가능합니다.

추가한 예약 작업 확인

테스트를 위해 다시 한번 라즈베리파이 OS를 시딩한 상태로 두어보겠습니다.

Seeding 중인 라즈베리파이 OS

그리고 OMV 관리자 페이지에 Schedule Tasks에서 저희가 추가한 예약 작업을 선택한 후 실행을 클릭해 봅니다.

예약 작업 수동 실행

그럼 Putty에서 보았던 동일한 메시지와 함께 Transmission 상에 torrent도 삭제 됩니다.

삭제된 라즈베리파이 OS torrent

이제 Transmission에서 파일이 다운로드 완료되면, 매 5분마다 torrent가 삭제될 것입니다.

추가적으로 이번에 알아본 Schedule Tasks는 어떻게 쓰느냐에 따라 NAS 관리에 편리함을 줄 수 있습니다. 예를 들어 저는 매일 오전 7시에 NAS를 재부팅하게 해두었는데요. 아래와 같은 설정입니다.

정시 예약 작업 실행 예시

약간 헷갈리시는 분들은 예약 작업을 저장한 후 Schedule Tasks 창에 리스트 된 작업을 보시면 명확하게 아실 수 있을 것입니다.

추가된 예약 작업 상태 확인

오늘 Shell Script 작성과 예약 작업에 대한 기본을 배우셨으니, 적절하게 자신의 NAS에 활용해 보시길 바랍니다.

이상, OMV6에 설치한 Transmission에서 다운 완료 torrent를 자동 삭제하는 방법을 알아보았습니다.

감사합니다.

댓글

이 블로그의 인기 게시물

[OMV6] WebDAV 설치 및 설정하기

[OMV6] Transmission 설치 및 설정하기

[OMV6] Gluetun을 이용하여 Transmission에 VPN 적용하기