메뉴 닫기

Synology/Xpenology Download Station 다운로드 완료된 항목 자동 정리하기

개요

시놀로지 혹은 헤놀로지의 다운로드 스테이션에서 토렌트 다운로드가 완료된 항목을 매번 수동으로 지우고 있었는데, 자동으로 정리하는 방법을 발견하여 공유합니다.크게 두 가지의 방법이 있는데 시놀로지에서 제공하는 작업 스케줄러를 이용하여 정해진 시간에 반복적으로 실행하는 방법이 있고, 다운로드 스테이션에서 다운로드 완료 이벤트가 발생한 경우에만 작업을 수행하도록 하는 방법이 있습니다.

전자는 완료된 항목을 주기적으로 제거할 수 있다는 장점이 있는 반면에 스케줄러로 인해 절전 모드가 계속 해제되는 문제가 있습니다(절전 모드가 필요하다면 전자는 적합한 솔루션이 아닙니다). 후자는 전자의 단점이 없는 반면에, 다운로드 완료 이벤트가 발생해야만 작업을 수행하므로 타이밍의 이슈로 서버가 꺼지거나 하는 등의 시점에 이벤트를 놓치면 한참 동안 다운로드가 제거되지 않을 수도 있다는 단점이 있습니다.

그래도 전반적으로 후자가 좀 더 스마트하게 동작한다고 볼 수 있겠습니다. 대신 후자가 설정하기도 좀 더 복잡합니다.

 

1. 작업 스케줄러를 이용하는 방법

제어판 > 작업 스케줄러 > 생성 > 예약된 작업 > 사용자 정의 스크립트를 선택합니다.

 

일반 탭에서 아래와 같이 입력합니다.

  • 작업 : Clear Torrent(원하는 작업명)
  • 사용자 : root(다른 사용자를 선택하셔도 됩니다)
  • 활성화됨 체크 상태 유지

 

스케줄 탭을 아래와 같이 설정합니다.

  • 다음 일수 후 실행 : 매일
  • 첫 실행 시간 : 08:00(원하는 시간을 선택하시면 됩니다. 저는 서버가 8시에 켜지고 24시에 꺼지게 설정돼 있어서 이렇게 설정했습니다.)
  • 주기 : 매 5 분마다(원하는 주기 선택)
  • 마지막 실행 시간 : 23:55

 

작업 설정 탭에 아래와 같이 입력합니다. 사용자 정의 스크립트란에 아래 코드를 입력합니다.

6.0 버전 이상인 경우

su - postgres -c 'psql -U postgres -d download -c "delete from Download_queue where status in ('5','7','8')"'

 

5.0 버전대인 경우

/usr/syno/pgsql/bin/psql -U postgres -d download -c "DELETE from Download_queue WHERE status in ('5','7','8')"

Download_queue status 값의 의미
1 : 대기 중
2 : 다운로드 중
3 : 일시 정지
4 : 종료 중
5 : 다운로드 완료
6 : 해시 체크
7 : 시딩 중
8 : 파일 호스팅 대기
9 : 압축 해제 중

 

아래 방법은 Download Station 업데이트 이후로 더 이상 동작하지 않는 것으로 보입니다.

2. 다운로드 완료 이벤트를 이용하는 방법

이 작업을 위해서는 먼저 DSM의 SSH 기능을 활성화해야 합니다. 제어판 > 터미널 및 SNMP에서 SSH 서비스 활성화에 체크한 후 적용을 누릅니다.

 

SSH 클라이언트 프로그램인 putty를 실행하여 DSM에 관리자 계정으로 SSH 접속합니다.

 

스크립트 파일 생성

touch 명령을 이용하여 원하는 경로에 원하는 파일 이름으로 스크립트 파일을 생성합니다.

# 형식
touch 생성할디렉토리/파일이름.sh

# 예시
touch /volume1/documents/script/clearDownloadedTorrent.sh

 

스크립트 파일 편집

vi로 해당 파일 편집 모드에 진입합니다.

vi /volume1/documents/script/clearDownloadedTorrent.sh

아래 코드를 입력하고 저장합니다.

#!/bin/sh

su - postgres -c 'psql -U postgres -d download -c "delete from Download_queue where status in ('5','7','8')"'

5.0 버전대인 경우 위에서 설명드렸듯이 /usr/syno/pgsql/bin/psql -U postgres -d download -c "DELETE from Download_queue WHERE status in ('5','7','8')"라고 입력해 주시면 됩니다.

 

스크립트 파일에 실행 권한 부여

해당 파일에 실행 권한을 부여하기 위해 아래와 같이 입력하고 엔터키를 누릅니다.

chmod +x /volume1/documents/script/clearDownloadedTorrent.sh

chmod에 대해서는 이 글을 참고하시기 바랍니다.

만약 정상적으로 실행 권한이 부여됐다면 ls 명령어를 입력해서 리스트를 확인할 때 해당 파일이 녹색으로 변해 있어야 합니다(예시 이미지이므로 파일 이름이 다릅니다).

 

스크립트 정상 동작 여부 테스트

정상적으로 실행되는지 스크립트를 실행해 봅니다. 스크립트가 정상이라면 현재 완료된 토렌트 목록이 제거되어야 합니다.

/volume1/documents/script/clearDownloadedTorrent.sh

 

Download Station 설정 변경

아래 명령어로 settings.json 파일을 엽니다.

vi /usr/syno/etc/packages/DownloadStation/download/settings.json

만약 이 파일이 보이지 않는다면 아무 토렌트나 다운로드를 시작하시기 바랍니다. 그러면 파일이 생성될 것입니다.
만약 vi에서 권한이 없다고 나온다면 sudo vi로 실행하시기 바랍니다.

script-torrent-done-enabled, script-torrent-done-filename 두 곳을 아래와 같이 각각 수정해야 합니다.

  • script-torrent-done-enabled : falsetrue로 수정
  • script-torrent-done-filename : "" 부분을 "/디렉토리/스크립트 파일"로 수정
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/volume1/documents/script/clearDownloadedTorrent.sh",

 

start-stop-status 설정 변경

위와 같이 settings.json 파일을 수정하였는데, Download Station이 켜고 꺼질 때 이 파일이 초기화되도록 설정되어 있습니다. 따라서 초기화되지 않도록 start-stop-status를 수정해야 합니다. 아래와 같이 입력합니다.

vi /var/packages/DownloadStation/scripts/start-stop-status

rm ${PACKAGE_DIR}/etc/download/settings.json 부분을 주석 처리(줄 맨 앞에 #을 입력)합니다.

만약 read only라고 저장이 되지 않는다면, 마찬가지로 sudo vi로 실행하시기 바랍니다.

 

pkg_DownloadStation 파일 수정

아래와 같이 입력합니다.

vi /etc/apparmor.d/pkg_DownloadStation

#transmissiond라고 표기된 부분의 맨 아래줄에 /volume*/share/script/synology/{,**} rix,을 추가합니다.

#transmissiond
    /dev/crypto                                         rw,
    /usr/share/samba/codepages/upcase.dat               r,
    /usr/share/samba/codepages/lowcase.dat              r,
    /usr/syno/smb.conf                                  r,
    /volume*/share/script/synology/{,**}                rix,
    /volume1/documents/script/{,**}                     rix,

 

DSM 재부팅

SSH에 sudo reboot를 입력하거나 웹 관리 페이지에서 재부팅을 선택합니다.

 

참고

1 Comment

댓글 남기기