[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 |
붙여 넣기 후 저장을 해줍니다.
-명령어 : :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를 자동 삭제하는 방법을 알아보았습니다.
감사합니다.
댓글
댓글 쓰기