분류

2021년 10월 15일 금요일

첫 nas 구매 5. nas4dual의 rss 설정 제대로 알아보자.

 개요 

nas4dual의 설정 중 rss 피드를 설정하는데 정확한 정보를 찾는것이 너무 어려워 문서를 또 한장 쓰게 되었습니다. 개인적으로 이번 nas 구매에서 가장 큰 역할로 꼽은 것이 rss 다운로드 기능이기에 이것에 대한 설정을 정확히 할 수 없을 경우 여러 불편함이 발생하기 때문입니다. 


RSS 추가 및 설정 방법

일단 RSS라는 것은 토랜트의 목록을 관리하는 서버입니다. 한국 방송보다는 일본 에니메이션을 다운로드 받아 보는 것을 좋아하기에 RSS는 필수이며 관리가 필요없이 한 번 등록하고 반 영구적으로 (해당 RSS가 사라질 때 까지) 사용하는 항목입니다. 관리가 필요 없다는 것이 가장 큰 장점이기에 한번의 설정으로 가장 큰 효과를 봐야 합니다. 

가. RSS 피드 등록 

IPTIME 자체 UI의 FEED 목록
RSS 피드는 TORRENT 관리의 RSS FEED 설정을 통해서 수행할 수 있습니다. 이 RSS FEED를 관리하는 프로세스는 FLEXGET이라는 LINUX용 프로그램으로 구성되어있습니다. 인터넷에 본인이 원하는 RSS를 검색해서 추가 또는 삭제할 수 있는 인터페이스가 되어있습니다. 간단하게 주소를 추가하면 되므로 입력항에 대한 설명은 하지 않겠습니다. 또한 제목도 필요가 없습니다. 

나. FEED 필터 등록 

피드는 하루에도 수십,백 건의 자료가 올라오는데 RSS 피드만 추가 할 경우 해당 자료 전체 가 다운로드 됩니다. 방영되는 에니를 전부 보는 저로서는 피드만 추가하면 되지만 FEED 필터를 추가하는 설명도 진행하도록 하겠습니다. 

FEED 필터는 FEED에 올라오는 수많은 자료 목록 중 본인이 원하는 자료만 검색할 수 있는 포함 단어, 그리고 본인이 원하지 않는 단어를 제외하는 제외 단어 등을 여러개 등록할 수 있습니다. 파일 하나마다 허용되는 단어와 허용되지 않는 단어를 목록으로 화 해서 관리합니다. 등록된 단어는 하나 하나마다 허용 , 거부 권한을 갖는 목록으로 작성되어 TORRENT 하나당 그 내용과 제목을 기준으로 검색을 수행하게 됩니다. 

예를 들어보면 다음과 같습니다. 
포함단어 '바보', '멍청이'
제외단어 '똥개' 
라고 작성 한 경우 TORRENT의 제목이나 내용에 '바보나 멍청이'가 TORRENT는 자동으로 추가 되지만, '멍청이 똥개' 는 다운로드 되지 않습니다. 똥개가 들어가있기 때문이죠. 

뭐 RSS라는 것을 이미 알고 계신분이 FEED 등록을 하기에 불필요한 설명 이라고 생각이 되지만 처음이신 분들은 아셔야 합니다. 그리고 전 RSS를 이미 사용하고 있었음에도 불구하고 FLEXGET을 처음 써보기에 필터링 되는 방식을 알아내는데 상당한 시간을 소요했습니다. 일단 FLEXTGET이 필터링을 담당한다는 것을 알아내는 것 까지만 해도 3시간이 걸렸습니다. 

이러한 피드 필터를 등록하면 RSS 내에서 자신의 취향에 맞는 파일만 받을 수 있으므로 한번의 설정으로 필요한 파일을 지속적으로 공급 받는데 도움이 됩니다. 

feed filter 등록시 유의사항

feed filter는 매우 유용하지만 종종 오탐을 하기도 합니다. 완성된 단어를 꼭 사용해야 합니다. 영문 단어의 약어를 합친 경우 마그넷 링크를 오탐하여 원치 않는 자료가 다운로드 됩니다. 예를 들자면 나혼자 산다를 영문 약자로 'AL'이라고 했을 경우 같은 거죠. 사람도 이해하기 힘든 약어는 컴퓨터도 이해하지 못합니다. 

torrent의 설명 부분에 마그넷 링크가 있는 경우가 있기 때문입니다. 마그넷 링크는 임의 영문 숫자의 조합으로 만들어지기에 약어와 겹치는 경우가 매우 많습니다. 

다. FEED필터가 작동하는지 확인하기 

FEED 필터는 또다시 TELNET을 통해 nas4dual에 들어가야 확인할 수 있습니다. 또한 시간 단위로 crontab이라는 리눅스 자체의 스케쥴링을 통해서 작동하기 때문에 해당 시간 외엔 프로세스에서 조회할 수 없습니다. 
telnet의 사용법을 모르시는 분은 이전 게시물을 확인하시면 되겠습니다. 


따라서 크론탭에 예약되어있는 정보를 확인합니다. 

명령어 : crontab -l 

결과 : 

0       *       *       *       *       /etc/rss.sh exec > /dev/null 2>&1 &
26      19      *       *       *       /sbin/hwclock -w
26      19      *       *       *       /sbin/ntpdate clock.iptime.co.kr
26      19      *       *       5       /sbin/ez-ipupdate -a 192.168.219.104 -u

위에 보이는 결과 목록 중 /etc/rss.sh exec 가 nas4dual에서 rss 피드를 호출하는 녀석입니다. 뒤에 따라 붙은 > /dev/null 2>&1 &는 프로세스에 대한 호출 로그를 남기지 않겠다. 그리고 백그라운드 서비스로 부르겠다 라는 명령입니다. 

따라서 /etc/rss.sh exec명령을 통해 호출해보겠습니다.  

2021-10-15 21:06:03 VERBOSE  task          rss340409313    ACCEPTED: `바보 똥개.mp4` by regexp plugin because regexp '바보' matched field 'description'
2021-10-15 21:06:03 VERBOSE  task          rss340409313    REJECTED: `바보 똥개.mp4` by regexp plugin because regexp '똥개' matched field 'description'
명령을 수행하면 위와같이 목록에 있는 명령으로 각각 필터링이 이루어지는 것을 알 수 있습니다. 명령어에 보면 regexp 라는 것이 있는 것으로 보아 정규식도 활용 가능 한 것으로 보입니다. 

라. RSS 파일 및 필터 위치 

RSSFEED 파일은 torrent다운로드 폴더로 설정한 디스크의 한단계 위에 존재합니다. 저는 HDD1의 torrent라는 폴더에 다운로드 위치를 설정했는데 그 바로 위인 /mnt/HDD1/.rss_cfg/폴더에 해당 파일들이 있습니다. 
명령어 : /mnt/HDD1/.rss_cfg/
 ls
결과 :
rss340409313.yml  rss340407888.yml  received          flexget.log       db-config.sqlite  config.yml

이렇게 여러개의 파일이 있는데 db-config.sqlite는 아마도 저장이력이나 환경정보를 갖고있는 데이터 파일인것 같습니다. 

config.yml은 등록된 rss-feed 목록을 관리하는 환경 파일입니다. 등록된 rss-feed 주소 만큼 늘어나니 건들지 않는게 좋습니다. 

rss와 숫자로 이루어진 yml 파일이 필터링이 포함된 피드 파일입니다. 그중 하나를 열어보자면 내용은 이렇게 구성됩니다. 

명령어 : vi rss340409313.yml 
결과 : 
rss: https://토랜트 rss 주소/
verify_ssl_certificates: no
regexp:
accept:
- '바보'
- '멍청이'
reject:
- '똥개'
magnets: yes
exec:
auto_escape: yes
on_output:
for_failed: "/usr/python3/bin/magnet_location.sh '{{url}}' '{{task}}'"

여러 단어를 등록해야 하는경우 엑셀이나 단어장에 - '검색어' 형태의 목록을 만들어두셨다가 vi 편집기를 통해 일괄 등록하는 것도 가능합니다. 

참고 

web 인터페이스에서 보는 원본 rss 설정 파일은 이곳에 있습니다. 두곳을 모두 변경해야 합니다. 
 cd /etc/property/RSS/

마. upnp가 지원되지 않는다면 재부팅은 되도록 삼가하자 

torrent 의 자료를 제공하는 측 (peer) 가 접속하는 포트는 nas4dual이 재실행 될 때 마다 무작위로 선정됩니다. 공유기에 DMZ 설정을 해놓게 되면 보안에 취약한 nas4dual을 통해 별별 놈들이 다 들어올 수 있으므로 저는 nas를 DMZ으로 설정해놓지 않았습니다. 특정 포트만 인터넷에 공유해놓고 그마저도 포트포워딩을 통해 원본 포트와 다르게 변경을 해놓았는데 재부팅을 할 경우 해당 포트가 변경됩니다. 

포트가 변경되면 다운로드 속도가 줄어듭니다. 
upnp를 설정한 경우는 문제가 없습니다.  


transmission 시작시 무작위 포트 선택이라는 옵션은 해제할 수 없기 때문입니다. 그리고 재부팅을 하면 한번에 다운로드 받는 파일 수도 변경되므로 torrent에 대한 설정 변경을 최소화 하기위해 재부팅을 저는 안하고 있습니다. 재부팅시마다 연결 포트를 매번 변경해준다는 선택지도 있습니다. 하지만 귀찮습니다. 

기타 주의사항 

windows에서 토랜트의 다운로드 상태를 보려면 transmission-remote gui라는게 필요해집니다. 여기에서 토랜트에 대한 환경설정을 할 경우 대부분 무시되거나, 환경 설정이 꼬이는 경우가 발생합니다. 따라서 안드로이드나 windows 상에서 환경을 변경하시면 아니되옵니다. rss가 다운로드 되지 않을 경우 torrent다운로드 폴더를 다른 디스크 상으로 바꾸면 다시 정상 작동할 것으로 생각 됩니다. (안에 들어있는 .session 폴더나 .python 폴더 .rss_cfg 폴더의 설정이 어딘가에 중복되서 발생하는 것 같습니다. ) 

디스크 경로를 바꿀 수 없을경우 torrent 서비스를 중지하시고 .session .python .rss_cfg 3개의 폴더를 제대로 지우시고 토랜트 서비스를 재실행 하셔야 합니다. 

참고로 한 가지 설정만큼은 잘 되는 앱이 있네요 windows 10에서 torrent 다운로드 개수를 변경 할 수 있는 앱입니다. 트랜스미션bt <--한번에 다운로드 되는 개수만 늘려줍니다. 다른건 다 적용안되요. 
다만 이 다운로드 개수는 재부팅하면 다시 초기화가 됩니다. 

저는 지난번 설정에서 다운로드 속도에 대한 상향을 통해 18메가 언저리는 꾸준히 나오는데 그 이상은 잘 안나옵니다. 26메가는 아주 가뭄에 콩나는 수준으로 나와요. 회선은 500Mbps 니까 /8해서 62.5MB/s가 최대인데 반절도 못씁니다. 공유기를 바꾼 이후 더 나오면 캡처해서 올리겠습니다. archer ax73을 구매하였으나. 대한통운 택배 부분파업의 피해를 보고 있습니다. 


10개 파일을 동시 다운로드 해도 피어수가 많지 않아서인지 cpu는 20% 이내로 쓰네요. 

주의사항 
기타설정 -> 외부 접속 관리를 설정 할 경우 
종종 rss 에서 다운로드가 되지 않는 경우가 발생했습니다. 
 Unable to download the RSS for task rss340932804 (https://사이트rss.php?filter=15&minMB=2000): HTTPSConnectionPool(host='사이트, port=443
위와 같은 에러 메시지가 발생할 경우 국가 차단 설정에서 해당사이트가 필터링 되는것이라고 보시면 되겠습니다. 또한 nas4dual의 국가 차단의 IP 대역이 실제 국가와 일치하지 않는 현상이 있습니다. 

댓글 없음:

댓글 쓰기