synobot 이 0.9 버전으로 업데이트 되었습니다.

다운로드 스테이션의 작업 제목에 특수 문자가 들어 가는 경우 메시지를 보내지 못하는 오류가 있어

해당 부분을 수정하였습니다.

 

https://hub.docker.com/r/acidpop/synobot/

 

Docker Hub

 

hub.docker.com

 

  1. 개그만스 2020.07.11 14:53

    synobot 0.9 설치하고 텔레그램으로 비밀번호 치라는 메세지는 오는데, 비밀번호 쳐도 로그인 성공했다는 메세지는 안오네요,,,
    포트번호도 다 확인했고, IP로 입력했고, 다 맞게 입력했는데 어디 부분이 문제인지 모르겠습니다, 도와주세요 ㅠ

 



Synology NAS 의 VMM 을 이용하여 가상 머신을 설치를 진행해 보았다.


가상 머신을 생성 하고 전원 켜기 버튼을 누르고


연결 버튼을 누르니 뜨는 화면......


Fail to connect to server, 웹 브라우저의 타이틀바에는 no VNC ...


도데체 이게 뭐지 하고 여러모로 방법을 찾다 보니 


NAS에 url로 접속을 하면 연결이 안되는 문제가 있다고 한다. 


출처 : https://www.clien.net/service/board/cm_nas/10888192?po=3&od=T31&sk=&sv=&category=&groupCd=



url 이 아닌 IP 로 접속을 해서 연결 버튼을 누르니 잘 된다.


xpebot 프로젝트가 중단 되었습니다.

 

synobot 프로젝트로 다시 시작 합니다.

 

https://blog.acidpop.kr/305

 

synobot 프로젝트

기존 xpebot 이 Synology DSM 이 업데이트 되면서 인증서 관련 오류가 발생.. ㅠㅠ 언젠가는 Download Station API 를 이용하도록 바꿔야지 하면서 미루다가 이제서야 작업 진행. DSM 의 환경이 워낙 자주 바뀌기..

blog.acidpop.kr

 

DSM 의 Database 를 변경 하는것이기 때문에 꼭 중요한 자료를 백업 하고 진행하세요.

데이터 손실에 대해 책임지지 않습니다.

 

 

 

DSM 6.0 이상 버전에서 xpebot (https://github.com/acidpop/xpebot) 을 적용하게 되면

 

다운로드 완료 시점에서 상태 정보가 "에러" 로 표시 되는걸 확인 할 수 있었다.

 

DSM 6.0 시스템이 없어서 무슨 문제인지 알수가 없었으나

 

최근 Hyper-V 에서 XPEnology 의 DSM 6.0 버전을 설치 할 수 있게 되어 디버깅을 시작.

 

 

몇번의 삽질 결과 DSM 6 버전부터는 각 Application 별로 계정이 따로 존재하고 postgresql DB 에서도 계정별로 권한이 주어져 있는것을 알게 되었다.

 

이 문제로 인해서 기존 Trigger 와 sql function 이 내부적으로 permission denied 오류가 발생하게 되었던걸로 확인 된다.

 

 


 

DSM 6.0 에서는 xpebot 만 git으로 받고 실행 한다고 해서 알림을 받을수는 없다.

 

아래의 조금 복잡(?)한 과정이 필요하지만 이 글을 천천히 따라한다면 가능할 것이라 생각된다.

 

1. Download Staion 설치 및 설정하기

 

먼저 DSM 에 Download Station 이 설치되어 있어야 한다. 당연한 이야기이지만 설치를 안하고 텔레그램 알림 받기 글을 따라 하다가는 막히는 부분이 많다.

 

DownloadStation 을 설치 하고 다운로드 받을 대상 폴더와 감시 폴더를 각각 설정한다.

 

 

 

 

주의 : 다른 시스템의 디스크를 Mount 한 디렉토리는 감시 폴더 작동이 제대로 안된다.

 

2. GitServer 설치 하기

 

패키지 센터를 열고 GitServer 를 설치 한다.

 

3. Python 설치 하기

 

패키지 센터를 열고 개발자 도구 메뉴를 클릭한 다음 Python3 와 Python Module 을 설치 한다.

 

4. 사용자 설정

 

제어판 -> 사용자 메뉴를 클릭한 다음

 

고급 탭으로 이동한다.

 

그후 스크롤을 가장 아래로 내려보면 사용자 홈 서비스 활성화 버튼이 있는데 해당 부분을 체크 하고 확인 버튼을 누른다.

 

 

5. SSH 서비스 활성화

 

제어판 -> 터미널 및 SNMP 메뉴를 클릭한 다음

 

SSH 서비스 활성화 버튼을 체크하고 "적용" 버튼을 클릭한다.

 

 

 

6. SSH 접속하기.

 

SSH 에 접속 할 수 있는 툴을 실행한다.

(없다면 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 이곳에서 putty.exe 를 다운로드 받는다.)

 

필자는 XShell 을 사용한다. 혹여 SSH 접속할 일이 많다면 XShell 을 설치 하자 (http://www.netsarang.co.kr/download/down_xsh5.html) 개인 사용자 무료

 

 

putty 또는 ssh 접속 툴을 이용하여 NAS 의 ip 를 적고 port 는 22 번으로 접속한다. (5번에서 port 를 변경 하였다면 변경한 port 로 접속)

 

ID : DSM 로그인 ID (Admin Group 에 속해 있어야 함)

 

PW : DSM 로그인 ID 의 Password

 

 

7. Download Station 계정 변경하기

 

ssh 접속된 상태에서 다음 명령으로 root 계정으로 전환 할 수 있다.

 

sudo -i

 

위 명령을 실행 하면 Password 를 물어 보는데

 

DSM 로그인 ID 의 Password 를 입력 하면 된다.

 

whoami 명령을 이용해서 root 라고 표시 된다면 root 로 로그인 된것이다.

 

다음 명령으로 계정 정보를 변경 해야 한다.

 

vim /etc/passwd

 

위 명령을 수행하면 아래와 같은 화면을 볼수 있다.

 

anonymous:x:21:21::/nonexist:/usr/bin/nologin
avahi:x:84:84::/:/bin/false
dbus:x:81:81::/:/usr/bin/nologin
dovecot:x:143:143::/dev/null:/usr/bin/nologin
DownloadStation:x:125560:125560::/var/packages/DownloadStation/target:/usr/bin/nologin
ftp:x:21:21::/nonexist:/usr/bin/nologin
guest:x:1025:100:Guest:/nonexist:/usr/bin/nologin
http:x:1023:1023::/var/services/web:/bin/false
ldap:x:439:439::/var/lib/openldap:/usr/bin/nologin

 

수 많은 계정들 중 DownloadStation 이라는 계정을 보면 가장 끝에 /usr/bin/nologin 뭐 이런식으로 되어 있는걸 볼 수 있다.

 

이 부분을 다음과 같은 변경 한다.

 

커서를 수정 하려는 곳으로 이동 후에 i 키를 누르고 /bin/sh 를 입력한다.

 

필요 없는 부분은 delete 키를 이용해서 지운다.

 

anonymous:x:21:21::/nonexist:/usr/bin/nologin
avahi:x:84:84::/:/bin/false
dbus:x:81:81::/:/usr/bin/nologin
dovecot:x:143:143::/dev/null:/usr/bin/nologin
DownloadStation:x:125560:125560::/var/packages/DownloadStation/target:/bin/sh
ftp:x:21:21::/nonexist:/usr/bin/nologin
guest:x:1025:100:Guest:/nonexist:/usr/bin/nologin
http:x:1023:1023::/var/services/web:/bin/false
ldap:x:439:439::/var/lib/openldap:/usr/bin/nologin

 

/usr/bin/nologin 에서 /bin/sh 로 변경 하였다.

 

수정 완료 후 ESC 키를 한번 누르고

 

:wq  (콜론 wq) 명령을 입력하고 엔터를 치면 수정 된다.

 

 

8. DownloadStation 계정으로 로그인하기

 

/etc/passwd 수정이 끝났다면 다음 명령으로 DownloadStation 계정으로 로그인 할 수 있다.

 

su - DownloadStation

 

 

위 명령을 수행 하고 whoami 명령을 이용해서 DownloadStation 계정으로 로그인 되었는지 확인 한다.

 

 

 

9. 알림을 받을 Table 및 트리거 생성하기.

 

DownloadStation 계정으로 로그인 되었다면 아래 명령을 이용해서 postgresql 에 접속 한다.

 

psql -U DownloadStation -d download

 

명령을 수행 하면 다음과 같은 화면을 볼 수 있다.

 

psql (9.3.6)

 

Type "help" for help.

download=# 

 

 

위 상태에서 다음 Query 문을 이용하여 Table, Function, Trigger 를 생성한다.

 

다음 순서 대로 Query 문을 복사/붙여넣기 한다.

 

 

 

1. Create Table.

CREATE TABLE btdownload_event(
    task_id           integer   NOT NULL,
    username          character varying(128),
    filename          text,
    status            integer,
    total_size        bigint,
    isread            integer,
    create_time       date
);


 

2. Create OR Replace function

CREATE OR REPLACE FUNCTION process_btdownload_event() RETURNS TRIGGER AS $btdownload_event$
    DECLARE
        rec_count integer;
    BEGIN
        IF (TG_OP = 'INSERT') THEN
            RETURN NEW;
        ELSIF (TG_OP = 'UPDATE') THEN
            IF (NEW.status = 2 AND NEW.current_size > 0 AND NEW.total_size > 0 AND NEW.current_rate > 0 ) THEN
                SELECT COUNT(*) into rec_count FROM btdownload_event WHERE task_id = NEW.task_id AND status = 2;
                IF ( rec_count = 0 ) THEN
                    INSERT INTO btdownload_event VALUES(NEW.task_id, NEW.username, NEW.filename, NEW.status, NEW.total_size, 0, now());
                END IF;
            ELSIF (NEW.status = 5 ) THEN
                SELECT COUNT(*) into rec_count FROM btdownload_event WHERE task_id = NEW.task_id AND status = 5;
                IF ( rec_count = 0 ) THEN
                    INSERT INTO btdownload_event VALUES(NEW.task_id, NEW.username, NEW.filename, NEW.status, NEW.total_size, 0, now());
                END IF;
            ELSIF (NEW.status = 118) THEN
                UPDATE download_queue SET status = 5, extra_info = '' WHERE task_id = NEW.task_id;
                DELETE FROM task_plugin WHERE task_id = NEW.task_id;
                DELETE FROM thumbnail WHERE task_id = NEW.task_id;
            ELSIF (NEW.status = 123) THEN
                SELECT COUNT(*) into rec_count FROM btdownload_event WHERE task_id = NEW.task_id AND status = 123;
                IF ( rec_count = 0 ) THEN
                    INSERT INTO btdownload_event VALUES(NEW.task_id, NEW.username, NEW.filename, NEW.status, NEW.total_size, 0, now());
                END IF;
            END IF;
            RETURN NEW;
        ELSIF (TG_OP = 'DELETE') THEN
            IF (OLD.status = 2) THEN
                INSERT INTO btdownload_event VALUES(OLD.task_id, OLD.username, OLD.filename, 999, OLD.total_size, 0, now());
            ELSE
                DELETE FROM btdownload_event WHERE task_id = OLD.task_id;
            END IF;
            RETURN OLD;
        END IF;
        RETURN NULL;
    END;
$btdownload_event$ LANGUAGE plpgsql;

 

3. Create Trigger

CREATE TRIGGER btdownload_event
AFTER INSERT OR UPDATE OR DELETE ON download_queue
    FOR EACH ROW EXECUTE PROCEDURE process_btdownload_event();


 

Query 가 성공적으로 끝났다면 \q 를 입력하면 psql 이 종료 된다.

 

10. root 계정으로 전환 후 xpebot 설치 하기

 

exit 명령을 이용해서 root 계정으로 다시 돌아온다.

 

혹시 root 계정으로 돌아오지 않는다면 ssh 접속을 종료하고 다시 접속하여

 

sudo -i 명령을 이용해 root 계정으로 로그인한다.

 

 

다음 명령을 이용해서 사용자 홈 경로로 이동한다.

 

volume 은 사용자 환경에 맞게 volume1, volume2 등으로 구성 되므로 자신의 홈 디렉토리가 어디에 설치 되어 있는지는 알아야 한다.

 

cd /volume1/homes/admin

 

 

위 명령에서 admin 은 자신의 dsm 로그인 ID 이다. 각자 ID에 맞게 수정해서 수행한다.

 

 

xpebot 설치는 다음 명령을 차례대로 수행한다.

 

기존 5.2 버전과는 다르게 bot6.sh.ori 파일을 복사해서 사용하여야 한다.

 

 

git clone "https://github.com/acidpop/xpebot"

wget "https://bootstrap.pypa.io/get-pip.py"
   
python ./get-pip.py
   
pip install telepot
   
pip install BeautifulSoup
   
pip install psycopg2
    
pip install Pillow
    
pip install psutil
   
cd xpebot
    
cp bot6.sh.ori bot.sh
    
cp xpebot.cfg.ori xpebot.cfg

 

 

bot.sh 파일을 열어 3번째 줄의 admin 부분을 자신의 계정으로 변경한다.

 

xpebot.cfg 파일을 열어 각각의 정보를 변경한다.

 

1) NOTY_CHAT_ID 는 Downlaod Staion 에서 다운로드 진행 현황 알림을 받을 사용자의 Chat ID 값을 입력한다.

2) DSM_ID 는 자신의 DSM ID 를 입력한다.

3) BOT_TOKEN 은 Telegram 의 Bot Father 에서 /newbot 을 요청하여 BOT 생성 후 자신의 BOT TOKEN 값을 입력한다.

4) VALID_USER 는 인증된 사용자의 chat_id 값을 입력한다. 여러명일 경우 ,(콤마)를 이용해 구분한다.

5) NAVER_API 섹션에 발급 받은 CLIENT_ID_KEY 값과 CLIENT_SECRET_KEY 값을 입력한다.

6) RSS_NEWS 섹션에 보고 싶은 뉴스의 RSS 주소를 입력한다.

7) DATA 섹션에 data.go.kr 에서 발급 받은 서비스 키를 입력한다

 

수정이 완료 되었다면 다음 명령어로 bot 을 실행 하거나 중지 시킬 수 있다.

 

./bot.sh start

./bot.sh stop

./bot.sh restart

./bot.sh chk

 

 


Download Station 계정으로 로그인 하고 Table, Function , Trigger 까지만 생성이 되었다면 https://github.com/acidpop/xpebot

 

github 에 있는 내용대로 하면 된다.

 

 

  1. 이전 댓글 더보기
  2. 감사합니다! 2017.02.07 10:21

    안녕하세요 우선 자세한 설명덕분에 텔레그램으로 알림을 받는데 까지는 성공을 하였습니다.
    신기하여 이것저것 눌러보다가 명령어 중에 토렌트서치가 있어 검색한뒤에 다운을 받고 다시 다른명령을 준뒤로 알림이 먹통이 되었습니다.
    https://github.com/acidpop/xpebot 에서 보면 캔슬하지 않고 실행하는 오류를 수정했다는데 적용이 안된건지. 아니면 다른 원인이 있는건지 알고싶습니다.

    • BlogIcon Acidpop acidpop 2017.02.07 10:44 신고

      안녕하세요
      말씀하신 내용만으로는 원인 분석이 어렵습니다.
      /var/log/xpebot.log 내용을 같이 올려주세요

    • 감사합니다! 2017.02.08 09:59

      로그내용을 복사해서 올리니까 자꾸 댓글이 사라지네요..
      우선 재시작해서 사용하면 이상이 없긴하였습니다. 근데 또다른 문제가 나스를 재시작 했을경우 실행이 안되는것 같은데 원래그러는건가요...?

    • BlogIcon Acidpop acidpop 2017.02.08 10:01 신고

      티스토리 측 댓글 시스템에서 뭔가 스팸 처리가 되는모양입니다.ㅠㅠ
      github 이슈 게시판에 올려주시겠어요?
      그리고 나스 재시작시에 시작 하도록 하는건 수동으로 등록해주셔야 합니다.

    • 감사합니다! 2017.02.08 10:11

      그렇군요 수동으로 등록하는 방법도 여쭤볼수 있을까요?
      스케쥴러에 /volume1/homes/계정/xpebot/bot.sh start 이렇게 사용자 정의를 했는데도 실행이 안되는것같습니다

      초보자라 따라하기만 할줄알뿐 아는게 없어서 뭔가 답답하네요.

    • BlogIcon Acidpop acidpop 2017.02.08 10:17 신고

      http://blog.acidpop.kr/241

      이글을 참고 하셔서 해보세요

      그리고 시스템 시작시 봇이 시작 되도록 하고 싶으시다면

      /etc/rc.local 파일에
      /volume1/homes/계정/xpebot/bot.sh start

      가장 아래줄에 추가해주시면 됩니다.
      혹시 rc.local 파일이 없다면 하나 만드셔서

      #! /bin/sh

      /volume1/homes/계정/xpebot/bot.sh start

      이렇게 작성 하시면 됩니다.

    • 감사합니다! 2017.02.08 10:23

      네 감사합니다. 한번 해보겠습니다!

    • 감사합니다! 2017.02.08 11:47

      알려주신 페이지대로 해도 안되고 rc.local 파일을 만들어서 해봐도 전혀 안되네요.. ssh로 접속해서 재시작하면 정상작동하니 우선 그렇게 사용해야겠네요.

    • BlogIcon Acidpop acidpop 2017.02.08 17:30 신고

      xpenology 가 사용자마다 간혹 환경이 다른 경우가 있더라구요.
      도움이 되지 못해 죄송합니다.

  3. nanpuhaha 2017.02.19 11:35

    안녕하세요? 덕분에 신기한 경험을 했습니다.

    다만, 한 가지 아쉬운 점이 명령 한번 하면 Stopped가 되는데,
    원래 명령 한번 수행하면 바로 Running 에서 Stopped가 되나요?

    어딜 손봐주면 수행한 뒤 Stopped 되자마자 다시 start할 수 있도록 할 수 있나요?

    • BlogIcon Acidpop acidpop 2017.02.19 11:57 신고

      명령을 수행할때 stop 되게 설계 되어있지는 않습니다만
      torrentsearch 명령이나 magnet 등록과 같이 downloadstation 에 db insert 구문을 수행하게 되면 dsm 측에서 해당 프로세스를 강제로 종료하는 현상이 있습니다
      torkim 명령을 사용하시는걸 추천드려여

  4. nanpuhaha 2017.02.19 13:08

    오옷 빠른 답변 감사합니다!
    torkim 명령을 사용하도록 하겠습니다!

    지금까지 http://blog.acidpop.kr/241 의 xpebot monitor 를 활용해보려 했는데
    제가 bash shell을 잘 몰라서 그런지... 설치된 경로를 제대로 변경했는데도 작동을 안하더라고요...
    혹시 xpebotmonitor.sh와 작업 스케쥴러를 이용하여 ./bot.sh start를 해주게 할 순 없을까요?

    • BlogIcon Acidpop acidpop 2017.02.20 09:09 신고

      bot monitor 스크립트와 bot.sh 스크립트에서

      가장 첫번째 줄의

      #! ./bash 로 되어 있다면

      전체 경로로 변경해주세요

      예를 들면

      #! /volume1/homes/admin/xpebot/bash

      이런식으로 bash 가 있는 경로의 절대 경로로 바꿔서 한번 테스트해보세요

  5. dung 2017.03.14 10:45

    안녕하세요. xpebot 으로 시놀로지에서 다운로드스테이션과 연결해서 잘 사용중인데요,

    어느순간부터 텔레그램 알림이 여러개가 뜨네요.. 예를들어 다운로드 완료 알림이 같은게 7개씩 뜬다던가 하는데

    혹시 원인이 뭘가요?

  6. dung 2017.03.14 11:15

    시놀로지 알림에 "아이디"의 주소 [아이피]가 SSH에 의해 차단되었습니다. 라는 메세지가 너무 많이 나오는데 이것도 해결할 수 있을까요?

    • BlogIcon Acidpop acidpop 2017.03.14 11:17 신고

      ssh 포트를 22 기본값으로 사용 하시면 그렇습니다 잘 사용하지 않는 포트로 바꿔주세요

  7. dung 2017.03.14 11:17

    만들어놓은 봇 하나로 2개의 텔레그램 아이디가 사용중입니다. 다운로드 스테이션은 여러명이 쓰고 있긴 한데, 텔레그렘은 2명만 사용해요.

  8. dung 2017.03.14 11:22

    텔레그램 봇은 테스트용하나 만들었다가 사용안하고 사용중인 봇은 1개입니다.
    위 명령어 실행하니 아래와 같이 나옵니다.
    11742 pts/13 S+ 0:00 grep --color=auto python

    • BlogIcon Acidpop acidpop 2017.03.14 11:24 신고

      괜찮으시다면 텔레그램 아이디 하나 알려주실수 았을까요
      바밀댓글로 남겨주세요

  9. 2017.03.14 11:25

    비밀댓글입니다

  10. yhchoi 2017.03.18 00:34

    저도 luna1474 님과 동일한 증상이 발생했네요 chk 해보면 stopped 라고 뜨는데 메신저에서 말을걸면 대답을 하네요..

    2017-03-18 00:21:15 [ERROR] download_db_timer Exception : Traceback (most recent call last):
    File "/volume1/homes/yhchoi/xpebot/dsdownload.py", line 399, in download_db_timer
    self.curs.execute(query)
    OperationalError: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.


    2017-03-18 00:21:15 [ERROR] error ---- server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.
    , -1
    2017-03-18 00:21:19 [INFO] recv signal : SIGTERM[15]
    2017-03-18 00:21:19 [INFO] SIGTERM signal ignore
    2017-03-18 00:21:19 [INFO] recv signal : SIGTERM[15]
    2017-03-18 00:21:19 [INFO] SIGTERM signal ignore
    2017-03-18 00:21:19 [INFO] recv signal : SIGTERM[15]
    2017-03-18 00:21:19 [INFO] SIGTERM signal ignore
    2017-03-18 00:21:19 [INFO] recv signal : SIGTERM[15]
    2017-03-18 00:21:19 [INFO] SIGTERM signal ignore
    2017-03-18 00:21:19 [INFO] recv signal : SIGTERM[15]
    2017-03-18 00:21:19 [INFO] SIGTERM signal ignore
    2017-03-18 00:21:20 [INFO] recv signal : SIGTERM[15]
    2017-03-18 00:21:20 [INFO] SIGTERM signal ignore
    2017-03-18 00:21:20 [INFO] recv signal : SIGTERM[15]
    2017-03-18 00:21:20 [INFO] SIGTERM signal ignore
    2017-03-18 00:21:20 [INFO] recv signal : SIGTERM[15]
    2017-03-18 00:21:20 [INFO] SIGTERM signal ignore
    2017-03-18 00:21:20 [INFO] recv signal : SIGTERM[15]
    2017-03-18 00:21:20 [INFO] SIGTERM signal ignore
    2017-03-18 00:21:20 [INFO] recv signal : SIGTERM[15]
    2017-03-18 00:21:20 [INFO] SIGTERM signal ignore
    2017-03-18 00:21:21 [ERROR] dsdownload db_connect error
    2017-03-18 00:21:21 [ERROR] could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/run/postgresql/.s.PGSQL.5432"?

    log보면 이런 메세지들이 있네요
    -------------------------------------------
    DSM 6.1 사용 중인데

    원인은 작업스케줄러에 시작시 bot start를 넣었더니 그런것 같습니다.
    재시작해보니까 bot은 다시 시작되서 대답을 하는게 확인되었는데.. chk해보면 stop으로 나오네요..

    작업스케줄러에서 실행한게 chk가 안되는 문제인것 같습니다.

    • BlogIcon Acidpop acidpop 2017.03.18 00:37 신고

      dsm 6.x 를 사용하시나요?
      bot.sh.ori 가 아닌 bot6.sh.ori 를 bot.sh로 복사하셔서 사용 하셔야 합니다
      지금 봇이 여러개 실행 되서 그런거에요

  11. yhchoi 2017.03.18 00:54

    그리고 help 명령어 치면 tfreeca 는 없네요..
    그리고 똑같이 따라했는데 다운로드완료시점에 에러라고 뜨네요..

    • BlogIcon Acidpop acidpop 2017.03.18 00:58 신고

      help에는 tfreeca 가 빠져있나봅니다

      혹시 http://blog.acidpop.kr/240
      이 dsm 6.0 일때 xpebot 설정도 다 하신건가요?
      xpebot 이 5.2기준이라 불안정할수 있습니다

  12. yhchoi 2017.03.18 01:06

    링크에 게시글에 중간에 bot.sh.ori라고 되어있네요^^;;이것만 수정해주시면 그대로 따라해도 아무런 문제가 없겠네요
    감사합니다!!
    ---------------------------------------------
    지금 bot6.sh.ori로 변경해서 진행결과
    작업스케줄러에 bot start 를 넣은거는 문제없이 running으로 표시되고 있습니다.
    그런데 여전히 다운로드 완료 후 에러는 뜨네요 큰 문제는 아니니 그냥 써도 될것 같네요 감사합니다~!!!
    -----------------------------------------------
    마지막으로 다운로드 완료 후에 에러라고 뜨는건 다운로드 폴더를 mount 폴더로 지정해놨더니 그러네요
    이거는 download station 문제로 생각되네요^^
    덕분에 정말 편하게 사용할 수 있어서 감사합니다!!수고하세요~

  13. Jo 2017.05.26 19:03

    덕분에 편하게 텔레그렘으로 알림이오네요.

    혹시 다운로드 스테이션에서 다운로드가 완료 되었을 경우에만 텔레그렘으로 알림이 전송되는 방법 혹시 아시나요?

    • BlogIcon Acidpop acidpop 2017.05.29 12:04 신고

      그렇게 하시려면
      DB Trigger 만드는 코드를 수정 하시면 됩니다.

      IF (NEW.status = 2 AND NEW.total_size > 0 ) THEN
      SELECT COUNT(*) into rec_count FROM btdownload_event WHERE task_id = NEW.task_id AND status = 2;
      IF ( rec_count = 0 ) THEN
      INSERT INTO btdownload_event VALUES(NEW.task_id, NEW.username, NEW.filename, NEW.status, NEW.total_size, 0, now());
      END IF;
      ELSIF (NEW.status = 5 ) THEN
      SELECT COUNT(*) into rec_count FROM btdownload_event WHERE task_id = NEW.task_id AND status = 5;
      IF ( rec_count = 0 ) THEN
      INSERT INTO btdownload_event VALUES(NEW.task_id, NEW.username, NEW.filename, NEW.status, NEW.total_size, 0, now());
      END IF;

      이 부분을 아래와 같이 수정 하셔서
      적용 하시면

      완료 일때에만 알람이 옵니다.

      IF (NEW.status = 5 ) THEN
      SELECT COUNT(*) into rec_count FROM btdownload_event WHERE task_id = NEW.task_id AND status = 5;
      IF ( rec_count = 0 ) THEN
      INSERT INTO btdownload_event VALUES(NEW.task_id, NEW.username, NEW.filename, NEW.status, NEW.total_size, 0, now());
      END IF;

  14. Jo 2017.05.30 00:37

    답변 감사합니다.

    한가지 피드백을 하자면

    현제 토렌트킴으로 토렌트를 받을시 봇이 꺼지는 현상이있는데(위에 꺼지는 현상의 이유도 읽어 보았습니다.)

    만약 꺼지는 서비스(토렌트서치, 토렌트킴, 겟토렌트킴 등...)를 실행 시 토렌트 받는 명령 전에 Restart 라는 py 혹은 쉘 스크립트를 만들어

    일정시간(약 10초)뒤에 다시 bot.sh start를 자동으로 해주는거죠.

    요약) 꺼지는 서비스 실행시 실제 토렌트서비스 실행 전 Restart.sh 등 스크립트 파일을 실행

    스크립트 파일 안에는 약 10초 뒤쯤 ./bot.sh start 를 해주는 명령어가 존재

    • BlogIcon Acidpop acidpop 2017.06.07 16:31 신고

      현재 XPEnology 6.1 에서는 그런 현상은 사라진것 같습니다.
      제안하신 방법도 우회 할 수 있는 방법이긴 합니다면 이것 외의 예외 상황일떄도 사용할수 있는 모니터링 쉘을 수행하는 방법이 나을것 같습니다. ^^;

  15. Jo 2017.07.29 21:28

    DSM 6.1.3 이후 파이썬등등 패키지 업데이트 이후 봇.sh이 실행되지 않습니다.

    • BlogIcon Acidpop acidpop 2017.07.31 09:38 신고

      안녕하세요
      제가 DSM 6.1.3 을 테스트 해 볼수가 없습니다.

      ./bot.sh start 실행 하면
      뭐라고 나오나요?

    • Jo 2017.08.01 19:38

      ./bot.sh start

      ===============
      Traceback (most recent call last):
      File "/var/services/homes/whwhdtk5689/xpebot/main.py", line 10, in <module>
      import telepot
      ImportError: No module named telepot
      XPEnology Telegram BOT : Stopped
      ===============

      이러한 에러가 나오네요.

      telepot을 import못했다고나옵니다.

    • Jo 2017.08.01 19:39

      곰곰히 생각해보니 얼마전에 한번 초기화한적이있었네요...

      pip로 설치후 다시 테스트해보겠습니다.

    • Jo 2017.08.01 19:56

      다시 설치하니 파이썬모듈들이 설치가 안되어있었네요.

      감사합니다.

    • BlogIcon Acidpop acidpop 2017.08.02 09:52 신고

      원인을 찾게 되서 다행이네요

  16. 사천탕수육 2017.08.25 11:43

    토렌트 검색을 한다음 다운로드를 하려고 누르면 "Torrent File 다운로드 시도"에서 더이상 진행이 안되는데 왜그럴까요...?

    • BlogIcon Acidpop acidpop 2017.08.25 12:21 신고

      어떤 명령을 쓰셨는지도 봐야 하고..
      토렌트 다운로드 누른 시점에서의
      /var/log/xpebot.log 내용도 있어야 합니다.

  17. 사천탕수육 2017.08.25 13:19

    말씀하신대로 log를 확인하니 원인이 나오는듯 하네요. 감사합니다!!
    [ERROR] File Move Exception, '[Errno 2] No such file or directory: 'Download Station Watch Directory Path (ex : /volmue1/download/watch/ )''

    덕분에 잘 해결했습니다 감사합니다!

    • BlogIcon Acidpop acidpop 2017.08.28 09:42 신고

      해결 되셨다니 다행입니다

      왠만한 예외 사항은 로그기록 하도록 처리를 해놓은 편이라 로그 확인이 가장 빠르긴 합니다.

  18. 에드빈 2017.12.14 16:07

    바쁘실텐데 죄송합니다.
    위에 적어주신 대로 했는데도 여전히 완료 시점에 에러가 뜨는데, Download Station으로 들어가서 정지를 시키면 완료는 되는군요.
    너무 막연한 질문인 것 같아 죄송합니다.
    /var/log/xpebot.log 파일은 어떻게 보여 드려야 할까요?

    • BlogIcon Acidpop acidpop 2017.12.14 18:15 신고

      기존에 DB에 작업한 table, trigger 를 삭제 하신 다음에 진행 하셔야 할것으로 보입니다.

  19. 에드빈 2017.12.19 14:00

    답변 감사합니다. 하지만 테이블과 트리거를 삭제하였다가 다시 위에 나온대로 만들어 보아도 역시 완료 시점에 에러가 발생하네요

    • BlogIcon Acidpop acidpop 2017.12.19 14:01 신고

      downloadstation 계정으로 하신건가요?
      실례가 안된다면 비밀댓글로 텔레그램 ID 알려 주시면 연락 드리겠습니다.

  20. 2017.12.19 14:46

    비밀댓글입니다

  21. 거다 2018.10.08 16:21

    좋은정보 감사합니다. 덕분에 알람 설정 잘하고 편하게 쓰고 있습니다 중간에 문제가 생겨서 댓글로 다량의 글을 남겼다가 해결하게 되어 지웠습니다...ㅎㅎ 아 한간지 궁금한게 있는데요 다운로드 스테이션 다른 사람도 추가 하려고 다른 사람의 텔레그램 chat id 을 알아내고 xpebot.cfg 파일에 chat_id 와 valid user? 여기에다가도 chat _id를 입력하였는데 다른사람이 알람이 오질 않네요.. 혹시 제가 빼먹은게 있을까요? 그냥 간단하게 chat_id 만 입력하면 끝인지도 궁금합니다.

    마지막으로 완료되었을시 알람만 울리게 하는 댓글이 위에 써있는데 db 트리거는 어느 파일에서 수정 하는 것인가요?

    • BlogIcon Acidpop acidpop 2018.10.12 10:54 신고

      안녕하세요 답변이 늦었습니다.

      xpebot.cfg 에 보시면 NOTY_CHAT_ID 와 VALID_USER에 각각 쉼표로 구분해서 chat_id 를 추가 해주시면 작동합니다.

      cfg 에 추가 하시고 bot 을 재시작 해야만 적용 됩니다.

      완료일때만 알람을 설정 하시려면
      DSM 6.0 설정 글 중 두번째 항목의 CREATE OR REPLACE FUNCTION 으로 시작 하는 코드를 수정 하시면 됩니다.

    • 거다 2018.10.13 16:11

      귀찮으실텐데 일일히 답변해 주셔서 정말 감사합니다.

    • 거다 2018.10.13 20:39

      답변 정말 감사합니다. 텔레그램은 계속 해결이 되지 않네요.. 2군데 모두다 입력 했는데.. restart 도 해보고 아예 멈췄다가 다시 켜보고 해도 알람이 오질않네요.. 제꺼는 잘오는데 상대방 께 안오네요..chat_id 좀 다시 확인해보고 해야 할것 같습니다. 상대방은 가만히 있어도 그냥 자동으로 대화창이 열리는 시스템인거 맞지요?

    • BlogIcon Acidpop acidpop 2018.10.15 15:36 신고

      안녕하세요

      가장 의심 되는 부분은 chat_id 인거 같습니다.

      일단 터미널에서

      curl -s -k -d "chat_id=12345678" --data-urlencode "text=TestMessage" https://api.telegram.org/bot123456789:TOKEN/SendMessage

      위와 같이 chat_id 뒤에 값과 .org/bot 으로 시작 하는 부분의 Bot 토큰값을 바꿔서 한번 실행해 보신 다음
      메시지가 가는지 부터 확인을 해보시면 됩니다.

    • 거다 2018.10.18 21:37

      안녕하세요 써주신 방법대로 시험 메세지를 보내본 결과 상대방이 수신합니다. 그런데 다운로드 스테이션만 계속해서 수신이 되지않네요. 일단 xpebot.cfg 에 써있는 글을 복사하자면

      [TELEGRAM]
      # Download Station 에서 작업 완료시 알림 메시지를 받을 사용자의 Chat ID 목록(, 로 구분하여 여러명 등록, EX: NOTY_CHAT_ID = 12345,98765)
      NOTY_CHAT_ID = 현재수신되는챗아이디, 상대방 챗아이디
      # Telegrem BOT을 이용하려는 DSM 사용자 ID
      DSM_ID = admin 계정
      # Telegram BOT 의 Token ID
      BOT_TOKEN = admin 계정의 봇토큰

      # 등록된 사용자 목록(, 로 구분하여 여러명 등록)
      VALID_USER = 현재수신되는챗아이디, 상대방 챗아이디

      # Torrent Watch Directory Path
      WATCH_DIR = /volume1/6_Torrent seed

      이렇게 되있는데 봇토큰은 1개만 입력하는 것이 맞지요? 잘모르지만 봇토큰이 2개가 입력되어야 할것만 같아 본인봇토큰입력,(한칸띄고)상대방봇토큰 으로 시험 해봤더니 bad request 400 에러만 뜨네요

      현재상황
      1. 첫번째의 챗아이디로 알림이 잘옴
      2. 혹시나 해서 챗아이디 순서를 바꿨지만 admin 계정의 아이디만 알림이옴
      3. 대댓글에 알려주신대로 TEST 메세지를 보내면 상대방은 수신함
      4. 다운로드 스테이션 알람만 상대방에게 가지않음
      5. 챗아이디 입력할때
      1235,(한칸띄고)34723 이런식으로 입력
      붙여서도 해봤으나 실패
      6. 이상입니다. 감사합니다.

    • BlogIcon Acidpop acidpop 2018.10.18 21:40 신고

      안녕하세요
      텔레그램 ID 비밀 댓글로 남겨 주시면 도와드릴께요~

    • 2018.10.18 23:28

      비밀댓글입니다

XPenology 5.2-5644 Update 5를 사용중이다.


최근 git clone 또는 git pull, git push 명령을 실행 하였을때


fatal: Unable to find remote helper for 'https'


위와 같은 오류가 발생 하는것을 확인 하였다.


상황을 보니 패키지 센터에서 최근에 업데이트 된 Git Server 2.8.0-.xxxx 버전이 문제인것으로 보인다.



필자는 다음과 같은 방법으로 해결 하였다.



1. 패키지 센터에서 Git Server 를 제거한다.


2. 패키지 센터에서 설정 버튼을 누른다.


3. 패키지 소스 탭으로 이동한다.


4. 추가 버튼을 누르고 다음 링크를 추가한다.

이름 : SynoCommunity

위치 : http://packages.synocommunity.com


5. 확인 버튼을 눌러 설정 창을 닫는다.


6. 패키지 센터에서 커뮤니티를 선택 하고 새로 고침 버튼을 클릭한다.


7. Git 을 선택한다. (글 작성시 버전 : 2.8.2-9)


8. Git 을 설치 한다.


9. Putty 등의 터미널 프로그램으로 XPEnology 에 접속한다.


10. git 위치를 확인한다.

ls /volume1/@appstore/git/bin


위 명령어를 실행 하였을때 git 파일이 보이면 된다.

만약 다른 Volume 에 설치 하였다면 해당 위치 경로를 찾는다.


11. 어디서든 실행 할 수 있도록 git 링크를 생성한다.

cd /bin

ln -sf /volume1/@appstore/git/bin/git git


12. git 을 사용한다.

기존에 XPEnology SMS 알림을 텔레그램으로 보내기 라는 글을 포스팅 했었다.

 

http://blog.acidpop.kr/207

 

하지만 이 글은 라즈베리 파이에 Telegram CLI 를 설치 하고...

 

새로운 사용자 계정을 만들어야 하고(폰 번호 필요)

 

php 까지 연동을 해야 하는 복잡한 구조였으나!!

 

 

최근 Telegram BOT 관련해서 약간의 개발을 진행 하고 문서를 살펴 보다 보니

 

Telegram BOT API URL 로 한번에 전송 할 수 있다는것을 알게 되었다.

 

다음 순서 대로 진행 하면 다른 설정 필요 없이 단순하게 URL 만 붙여넣기 하여 SMS 알림을 텔레그램으로

 

보낼 수 있다.

 

 


 

1. Telegram BOT 계정 만들기

http://blog.acidpop.kr/215

Telegram BOT 은 폰 번호가 필요 없다. 위 링크를 참고하여 봇 계정을 생성하자.

 

2. chat ID 값 알아오기

http://blog.acidpop.kr/216

위 링크를 참고하여 본인의 chat_id 값을 알아오자.

 

3. XPEnology 에서 알림 설정 하기.




  제어판에서 알림으로 들어가서 SMS 탭을 선택 한다.


  중간쯤에 SMS 서비스 제공업체 추가 버튼을 클릭한다.



https://api.telegram.org/bot186547547:AAEXOA9ld1tlsJXvEVBt4MZYq3bHA1EsJow/sendMessage?user=1&pass=1&phone=010&chat_id=12345678&text=Hello World


위 주소를 복사하여 빨간색으로 표시된 BOT Token 과 chat_id 값만 생성한 봇의 Token 값과 chat_id 값으로


변경해준 다음 붙여 넣기 한 후 다음 버튼을 클릭한다.


공급자 이름은 사용자가 원하는대로 써주면 된다.


text=Hello World 에서 띄어쓰기를 삭제 하면 작동하지 않는다.

 




4. 각 매개변수에 대해 해당하는 범주 선택 창에서 아래와 동일하게 설정 해준다.





5. 아래쪽에 있는 적용 버튼을 누른 다음 "테스트 SMS 메시지 전송" 버튼을 눌러 텔레그램 봇에게 메시지가 오는지 확인한다.





6. 고급 탭으로 이동 하여 SMS 에 관련한 항목을 모두 체크 한다.


가장 위에 있는 "ㅁSMS " 체크 박스를 체크 표시하면 모두 체크 된다.


위쪽에 있는 저장 버튼을 눌러 저장한다.



XPEnology 의 SMS 메시지를 텔레그램 봇으로 모두 받을 수 있게 되었다.

  1. 부탁드립니다 2019.04.25 23:58


    안녕하세요 좋은 글 감사합니다. 관련 글과는 상관없지만 텔레그램 관하여 질문드리고 싶어 댓글남깁니다 ㅠ


    제 문제상황은 2차비밀번호를 걸었는데 기억이 나지않아 초기화해야하는 상황이고 핸드폰을 바꾸어야하는데 원래폰 이외에는 2차비밀번호로 인해 로그인이 안되는 상황입니다.

    텔레그램 데이터와 대화방 모두 나가지않은 상태에서 새로운폰으로 옮길 수는 없는것이겠죠~?

    혹은 2차비밀번호 생성시 이메일을 기입하지않아 계정초기화를 요구하는 상황인데 찾을 방법은 없겠죠~?

    마지막으로 동일한번호로 계정추가를 하게되면 어떤일이 일어날까요~?

  2. BlogIcon Acidpop acidpop 2019.04.26 10:41 신고

    글쎄요.. 해당 내용은 텔레그램측에 문의를 해보시는게 좋을거 같네요

  3. 부탁드립니다 2019.04.27 13:37

    감사합니다

 

Telepot 8.0 에 맞춰 xpebot 이 업데이트 되었습니다.

 

자세한 사항은 github 를 참조하세요.

 

https://github.com/acidpop/xpebot

 

BOT 시작 후 응답 없는 문제는 수정 된걸로 보입니다.

 

현재 제 시스템에서는 계속 작동합니다.

 


 

 

BOT 을 시작 한 후 3시간 정도가 지나면 BOT 이 응답이 없는것이 확인 됩니다.

 

현재 telepot 라이브러리 개발자에게 문의한 상태이고 수정 되면 다시 공지 하겠습니다.

 

 


 

 

임시 방편으로 해결책이 있네요. (luna1474 팁을 주셨습니다)

 

 

1. bash 파일을 복사

 

xpebot 경로에 있는 bash 파일을 /usr/bin/ 경로에 복사

 

cp /volume1/homes/admin/xpebot/bash /usr/bin/

 

admin 은 xpebot 이 설치된 자신의 계정으로 변경

 

bot.sh 파일 가장 윗줄에

#!./bash   이 내용을

#!/usr/bin/bash 

위와 같이 변경 합니다.

 

1. DSM 에 접속

 

2. 제어판에서 작업 스케쥴러 실행

 

3. 생성 버튼 -> 사용자 정의 스크립트 선택

 

 

 

 

작업 이름은 사용자가 원하는데로 설정

사용자 정의 스크립트는 아래와 같이 입력

 

/volume1/homes/admin/xpebot/bot.sh restart

admin 은 xpebot 이 설치된 계정 이름으로 변경

 

스케쥴 탭을 누른 후 다음과 같이 설정

 

 

다음 일수 후 실행을 선택하고 "매일" 로 설정

 

시간

첫 실행 시간

00 : 15   또는 00:00 으로 설정

 

주기

매 1시간 으로 선택

 

마지막 실행 시간

23:15 또는 23:00 으로 설정

 

 

위와 같이 설정 하면 지정한 시간부터 매 1시간 마다 bot.sh restart 명령을 수행하게 된다.

 

telepot 응답을 못받는 문제가 해결 되기 까지는 위 방법으로 계속 사용 가능하다.

 

 


 

 

 

기존의 Telegram CLI 를 이용한 BOT 은 라즈베리 파이에서 구동을 하던지 chroot 위에서 구동을 해야 해서


NAS 만 가지고 있는 분들은 사용이 좀 어려웠다.


이번에 telepot 이라는 python 용 Telegram BOT 라이브러리를 이용해서 기존에 있던 기능들을


파이썬용으로 포팅해 보았다.







설치 및 사용 방법읍 github 에 자세히 설명해 놓았다.


https://github.com/acidpop/xpebot


파이썬을 아직 잘 다루지 못해 소스가 좀 난잡한 부분이 있지만 계속 수정해 나갈 생각이다.


최초에 서비스를 시작한 후에 BOT 계정에게 /dsdownloadregister   메시지를 보내야만 Download Station 모니터를 할 수 있으므로


필히 해줄 것!


이 부분은 다음 버전에 자동으로 등록 할 수 있도록 수정 예정



Download Station 을 모니터링 하여 작업이 추가 되었을 때와 다은로드가 완료 되었을 때 등록된 사용자에게 알림 메시지를 전송 한다.

 

 

 

 

 

 


 

  1. 이전 댓글 더보기
  2. nanta2k 2016.06.02 03:18

    예전 버전(ver0.3)에서는 정상으로 동작하였으나, 업데이트 후 아래와 같이 실행 에러가 발생하네요..ㅜ.ㅜ
    -----------------------------------------------------------------------------------------------------
    bash-3.2# ./bot.sh start
    Starting XPEnology Telegram BOT...
    Traceback (most recent call last):
    File "/var/services/homes/manager/xpebot/main.py", line 14, in <module>
    import BotManager
    File "/volume1/homes/manager/xpebot/BotManager.py", line 21, in <module>
    import torrent
    File "/volume1/homes/manager/xpebot/torrent.py", line 6, in <module>
    import dsdownload
    File "/volume1/homes/manager/xpebot/dsdownload.py", line 3, in <module>
    import psycopg2
    ImportError: No module named psycopg2
    XPEnology Telegram BOT : Stopped
    ---------------------------------------------------------------------------------------------------------
    psycopg2, Pillow 모듈 설치할때 에러를 뿜고 정상 설치가 안되는것 같아요..
    에러 내용은 너무 길어 게시판 문제될까봐 올리지는 않을께요..
    해결 방법이 없을까요?

    • BlogIcon Acidpop acidpop 2016.06.02 09:14 신고

      psycopg2, Pillow 모듈 설치가 꼭 되야 합니다.

      pip install psycopg2 가 안된다면

      pip remove psycopg2
      pip remove Pillow
      이렇게 remove 하신 다음

      pip install psycopg2
      pip install Pillow

      다시 install 해보세요

      그래도 안된다면

      easy_install psycopg2
      easy_install Pillow

      이렇게 easy_install 로 설치 해보세요

  3. oOpsKorean 2016.09.01 14:14

    안녕하세요~. 몇일 전부터 봇 명령어중에서 토렌트 관련 명령어 실행 후 '/검색어'를 보내면 '검색 결과가 없습니다.' 라는 메세지만 출력을 하는데요. 토렌트 사이트가 문제인건지... 혹시 확인 부탁드려도 될까요?
    감사합니다.

    • BlogIcon Acidpop acidpop 2016.09.01 15:59 신고

      안녕하세요

      /torkim
      /torrentsearch 명령 이용해서 검색 해보면 잘 나옵니다.

      /var/log/xpebot.log 의 내용을 한번 올려주세요

  4. oOpsKorean 2016.09.02 09:08

    현재 윈도우 10 hyper-V에 Xpenology 올려 사용중인데 이번 windows 10 업데이트 하면서 먼가 문제가 있었나 봅니다....
    PC 재부팅후에 업데이트 완료하니 다시 정상 작동 되네요 ;;;
    감사합니다.

  5. droplet 2016.09.02 17:40

    안녕하세요.
    다름이 아니라 github를 보면서 설치중 단계별로 다 따라하고 실행하기위해 ./bot.sh start 를 입력하면
    ./bash: error while loading shared libraries: xxxx: invalid mode for dlopen() : Invalid argument
    라고 나오면서 실행이 안되는데 어떻게 해야할지 몰라서 질문드립니다.
    위의 xxxx 부분이 자꾸 깨진글자로 나와서 어떤것인지 확인할 수가 없네요 ㅠㅠ

  6. rainbot 2016.09.08 14:34

    안녕하세요.
    덕분에 편리하게 사용하고 있습니다만, 사용중에 문제점이 한가지 있어서 문의드립니다.
    기존에 xpelnolgy에 설치시 pillow나 psypcog2 설치시 에러메시지가 떠서 easy_install로 설치 후 사용하였습니다.
    그런데 나스 부팅시 봇이 자동 실행되지 않아 확인해보니 python module 에러로 실행이 안되어
    패키지 센터에 있는 python 관련된 패키지를 모두 설치 해버렸습니다.
    python 패키지 설치 후 telebot 삭제 및 재설치를 시행했구요 python3인가 설치 후 telebot 관련 패키지 설치시
    에러는 발생하지 않았습니다. 재설치 후 초기 실행은 잘 되었는데 어느때부터인가 나스 실행시 텔레봇이
    자동실행이 되지 않고 있습니다. 텔레봇 삭제 및 재설치를 해도 마찬가지입니다.
    ssh로 접속 후 강제 start를 시키면 나스가 종료 될때까지 문제없이 잘 실행이 되기는 합니다.
    나스 부팅시 자동 시작 시킬 수 있는 방안이 있을까요?
    이런 프로그래밍 관련된 제대로된 지식이 없다보니 제작자님과 같은 분들이 만들어놓은
    자료만 낼름 가져다 사용하면서 이런 내용을 문의하게 되어 죄송스럽기도 하지만
    언제나 감사한 마음으로 사용하고 있습니다. 감사합니다.

    • BlogIcon Acidpop acidpop 2016.09.08 15:03 신고

      안녕하세요
      제가 만들어 놓은 xpebot 은 시작 스크립트에 등록하는 코드는 없습니다.

      그리고 rc.local 에 bot.sh start 를 해놓아도 작동이 잘 안되는 경우도 많고 해서

      최근에 활용한 방법을 포스팅하였습니다.

      http://blog.acidpop.kr/241

      위 링크를 참고 하셔서 사용해 보세요

  7. oOpsKorean 2016.10.13 11:39

    이번 magnet link 자동 다운로드 기능 업뎃 기능은 너무 편하네요.
    그런데 그룹챗방에서는 적용이되지 않네요.. 시간이 되신다면 확인 부탁드리겠습니다.
    감사합니다.

    • BlogIcon Acidpop acidpop 2016.10.13 11:48 신고

      그룹 채팅방에서는 기본적으로 맨 앞에 /가 붙은 메시지만 봇에게 전달 됩니다.

      magnet 링크는 일반 메시지 이기때문에 전달이 안되는건데
      일반 메시지까지 모두 받으려면
      BotFather 에게
      /setprivacy
      메시지를 보내고 봇을 선택한 다음
      Enable 선택 하시면 그룹 채팅방에서도 작동 할겁니다.

  8. oOpsKorean 2016.10.13 17:37

    알려주신 방법대로 BotFather 에서 /setprivacy 설정을 Enable로 하고 진행하였으나 결과는 동일합니다.
    그룹챗방에서 마그넷주소 입력시 다운은 되지 않네요, 마그넷 주소앞에 '/'를 붙여서도 해 보았으나 마찬가로 작동하지 않습니다.

    • BlogIcon Acidpop acidpop 2016.10.13 19:20 신고

      제가 뭔가 착각을 했네요 ㅠㅠ

      /setprivacy 에서

      DISABLE 로 하셔야 그룹방에 메시지가 옵니다.

  9. rainbot 2016.11.16 16:38

    나스 dsm 재설치 후 telebot을 다시 설치하려고 했는데 git 서버에서 다운로드가 안되는 것 같습니다.
    git clone "https://github.com/acidpop/xpebot" 명령을 입력하면
    unable to find remote helper for 'https' 이런 에러가 발생합니다.
    git 페이지에 들어가 직접 다운로드도 안되네요. 텔레봇 사용하고 싶은데 잘 안되네요

    • BlogIcon Acidpop acidpop 2016.11.17 09:26 신고

      http://blog.acidpop.kr/228

      제가 예전에 포스팅 했던게 있습니다.

      위 링크를 참고하세요~~!

  10. shekinah 2017.01.23 10:50

    안녕하세요~ 강좌 및 github를 통해 xpenology에 잘 설치했습니다~
    궁금한 것이 있는데, /torrentserch를 통해서 토렌트를 검색한 후에 10가지 항목에서 한가지를 선택하면 아무런 변화가 없는데,
    원래는 이 명령어를 통해서 선택한 것이 DS staion 에 자동으로 등록이 되어 다운로드해주는 기능인건가요?
    /gettorrent 로는 텔레그램에서 바로 다운이 되지만 파일명이 짤려서 조금 불편한 부분이 있는데, 궁금해서 질문드려봅니다~ 감사합니다~

    • BlogIcon Acidpop acidpop 2017.01.23 11:42 신고

      안녕하세요
      torrentsearch 사용시
      버튼을 누르면
      "다운로드를 시작합니다." 또는
      "다운로드 실패" 메시지가 보여야 합니다.
      그게 아니라면 현재 torrentkim 사이트에 변화가 있어서 발생 하는 문제 일수 있습니다.

      작동 방식은 버튼을 누르면 토렌트 사이트에서 magnet 정보를 읽어 와서 DS Download 의 DB 에 magnet 정보를 insert 해주는 방식입니다.

      이왕이면 torkim 명령을 이용해주세요
      torkim 명령은 실제 .torrent 파일을 다운로드 하여 DS Download 의 감시 디렉토리에 torrent 파일을 넣어 주는 기능을 합니다.

  11. shekinah 2017.01.23 12:41

    답변 감사드립니다.
    torrentkim 사이트에 변화가 있나보군요~

    torkim 명령어는 torrent file 다운로드 시도까지는 뜨지만 그 다음에는 반응이 없네요~

    일단은 gettorrent로 파일을 직접 받은 후 ds get 어플로 올려서 사용해야겠네요~

    토렌트 사이트에 변화가 있을시에 업데이트 적용을 해주실 때까지 기다려야하는 건가요?

    그리고 다른 토렌트 사이트를 적용하려면 rss를 지원해줘야 가능한게 맞는건가요? 답변 부탁드립니다~ 감사합니다~

    • BlogIcon Acidpop acidpop 2017.01.23 14:45 신고

      torrentsearch 명령은 RSS 를 분석해서 사용을 하고
      gettorrent 와 torkim 명령은
      해당 토렌트 사이트의 html 소스를 분석해서 사용합니다.

      torrentsearch 명령쪽은 좀 더 보완해서 github 에 업데이트 되었으면 한번 사용해보세요.

      다른 토렌트 적용 하려면 RSS 를 지원 하던지 html 소스가 바뀌지 않으면 지원 할수 있어요 ^^;

    • BlogIcon Acidpop acidpop 2017.01.23 14:47 신고

      Download Station 에 설정에서 위치 메뉴
      Torrent/NZB 감시 폴더를 지정 하시고
      xpebot.cfg 에 WATCH_DIR 에 해당 감시 폴더 경로 지정해 주시면
      /torkim 명령으로 ds get 어플 쓰지 않고도 사용이 가능합니다.

  12. shekinah 2017.01.23 14:54

    정말 감사합니다~ 그런데 제가 프로그래밍은 할 줄 몰라서 질문 하나만 더 드리겠습니다...

    github에서 업데이트가 이루어진다면, 어떻게 업데이트를 적용할 수 있는건가요?

    파일을 다운 받아서 winscp로 교체하고 봇을 stop했다가 다시 start 하는 방법이면 가능한건가요?

    초보적인 질문에 양해를 구합니다~

  13. shekinah 2017.01.23 15:01


    github에서 업데이트 된 4개 파일(main.py, README.md, CHANGELOG.md, BotManager.py)을 다운 받아서 winscp로 덮어쓰기 후

    봇을 멈추었다가 다시 실행했더니 다음과 같은 오류가 납니다~ 업데이트를 잘못한걸까요?

    noelesther> ./bot.sh start
    Starting XPEnology Telegram BOT...
    File "/var/services/homes/Noel/xpebot/main.py", line 5
    <!DOCTYPE html>
    ^
    SyntaxError: invalid syntax
    XPEnology Telegram BOT : Stopped

    • BlogIcon Acidpop acidpop 2017.01.23 15:05 신고

      git 소스를 받으셔야 하는데 해당 소스가 보여지는 html 페이지가 받아진걸로 보입니다.

      git pull 명령으로 받으시면 됩니다.

      복잡하시면 xpebot.cfg 만 백업해 두시고
      xpebot 폴더 삭제 하신 다음
      git clone "xpebot 주소"
      명령으로 다시 받으셔도 되요

  14. shekinah 2017.01.23 15:05

    감사합니다~ ^^

  15. shekinah 2017.01.24 21:12

    2개의 텔레그램으로 사용하고 있는데, 주 계정으로 사용하던 텔레그램은 /torrentsearch, /weather, /wol, /addwol, /delwol, /help만 뜨고
    추가한 계정에는 원래 명령어가 다 뜨네요~^^;

    그러다가 갑자기 /만 뜨게 되었네요... ㅠ

  16. shekinah 2017.01.30 23:28

    안녕하세요~ 사용하다가 또 질문이 생겨서 이렇게 글을 남깁니다.

    Kodi를 사용하다가 Plex를 알게 되어, 영화 포스터와 정보를 자동으로 가져오는 기능에 혹해서 사용하게 되었습니다.

    그러기 위해서는 다운 받은 영상을 각 폴더별로 분류를 해야하는데,

    영화, 예능, 드라마를 폴더별로 자동 분류되는 방법을 찾다가, 나름 반자동인 방법으로 찾은 것이

    헤놀로지에서 각각의 계정을 만든 후,

    각 계정의 다운로드 스테이션에서 토렌트 파일 자동 읽기와 자동 저장을 각각의 폴더로 Movie, TVshow, Drama로 다운 받게 해두었습니다.

    그리고 github에 나온대로 각 계정별로 다 xpebot을 설치하고, 각각의 봇 토큰을 설정하여 셋팅을 했습니다.

    마지막으로 etc/crontab에 등록을 해두었는데, 4개가 동시에 모두 작동하지 않는 것 같습니다.

    최대 2개의 봇만 작동이 되는 것 같은데~ 혹시 제한이 있는 것인가요? 아니면 제가 셋팅을 잘못한 것일까요?

    요약하자면
    0. 기존에 사용하던 봇이 1개 존재
    1. 텔레그램 봇 3개 토큰 생성
    2. Nas 3개 계정 생성
    3. Nas 3개 계정에서 DS 자동 읽기, 자동 다운 장르 폴더별 셋팅
    4. 각 계정에 텔레그램 봇 설치 및 세팅
    5. crontab에 각 계정 자동 실행 등록(총 4개 봇)
    6. 결과적으로 보면 봇이 2개만 활성화.(bot.sh chk로 확인해보면 running이지만 작동 불가, 작동하지 않는 봇의 bot.sh를 restart하면 작동 그러나 다른 봇 작동안함)

    이렇게 해서 사용하려고 했지만 작동이 되지 않습니다...

    혹 다른 좋은 방법이 있는지 알려주시면 감사하겠습니다~

    그리고 또 하나 각 봇에 대한 알람을 2개 이상 받고 싶은데 가능할까요?

    NOTY_CHAT_ID 이 항목이 VALID_USER 항목처럼 콤마(,)로 2개 등록을 했지만 먼저 적은 chat_id에만 적용이 되는 것 같아 질문드립니다~

    • BlogIcon Acidpop acidpop 2017.01.31 10:40 신고

      안녕하세요
      1. xpebot 은 한 시스템에 여러개가 작동하도록 설계되어 있지 않습니다.
      동일한 프로세스 이름을 사용하기 때문에 bot.sh 에서 각각의 봇을 감지 할수 없습니다.

      2. 각 봇에 대해 알람을 2개 이상 받는 기능은 개발을 하면 가능하겠지만 너무 개인적인 일에 특화된 기능이고 해당 기능이기에 개발 예정이 없습니다.

      굳이 꼭 필요하시다면
      BotConfig.py 에서
      notify_chat_id 를 가져 오는 부분을 리스트로 가져와서 저장 하고
      dsdownload.py 파일에서 self.chat_id를 list 로 지정하여 for 문을 돌면서 각각 Notify id 에 알림을 보내면 가능합니다.

      죄송하지만 해당 프로젝트는 제가 개인적으로 사용하는 소스를 공개한것이지 각 개개인의 목적에 맞춰 개발 할수 없음을 알려드립니다.

  17. shekinah 2017.01.31 12:38

    답변 감사합니다~ 가능한지 아닌지 궁금해서 질문 남겼었습니다~
    좋은 소스 공개해주셔서 감사합니다 ~^^

  18. zedis 2017.02.17 17:52

    torkim 안되서 git pull 로 업데이트 했는데,

    Starting XPEnology Telegram BOT...
    Traceback (most recent call last):
    File "/var/services/homes/user/xpebot/main.py", line 14, in <module>
    import BotManager
    File "/volume1/homes/user/xpebot/BotManager.py", line 15, in <module>
    from telepot.namedtuple import ReplyKeyboardMarkup, KeyboardButton, ReplyKeyboardRemove, ForceReply
    ImportError: cannot import name ReplyKeyboardRemove
    XPEnology Telegram BOT : Stopped

    위와 같은 에러 메시지와 함께 실행이 안됩니다.

    저장소 날리고 git clone으로 새로 받아서 같은 에러인데 답변 주실수 있나요?

    • BlogIcon Acidpop acidpop 2017.02.17 17:59 신고

      안녕하세요

      기존에 사용하셨던 telepot 라이브러리가 오래전 버전인듯 합니다.

      pip install telepot --upgrade

      위 명령으로 telepot 라이브러리를 업데이트 해주세요

  19. nas 2017.02.20 19:14

    안녕하세요..
    처음 설정하는중간..아래와 같은 에러메시지를 뛰우네요..어디가 문제인지..ㅠㅠ
    Traceback (most recent call last):
    File "/var/services/homes/user/xpebot/main.py", line 14, in <module>
    import BotManager
    File "/volume1/homes/user/xpebot/BotManager.py", line 33, in <module>
    import TorrentKim
    File "/volume1/homes/user/xpebot/TorrentKim.py", line 15, in <module>
    import chardet
    ImportError: No module named chardet

    첨부터 이러니..뭘 만져야 할 지 모르겠네요..

    • BlogIcon Acidpop acidpop 2017.02.20 23:21 신고

      인코딩 관련 소스를 수정하다가 라인 하나가 잘못 들어갔네요 ㅠㅠ
      git pull 명령으로 업데이트 하셔서 다시 해보시면 될겁니다

  20. peter 2017.03.01 09:10

    만들어주신 봇 너무나 잘 사용하고 있습니다~
    근데 SIGTERM 무시 이후 안죽고 잘 되다 최근에 다시 봇이 죽기 시작했습니다.
    에러 메시지상으로는 무시한다고 표시는 되지만 실제로는 봇이 죽는데 혹시 저만 이런건 아니겠죠.ㅎ

    2017-03-01 08:50:38 [INFO] recv signal : SIGTERM[15]
    2017-03-01 08:50:38 [INFO] SIGTERM signal ignore

    • BlogIcon Acidpop acidpop 2017.03.01 10:46 신고

      torrentsearch 명령이나 magnet 등록시 dsm 에서 해당 프로세스를 강제 종료 시키는걸로 보입니다
      sigterm 은 컨트롤이 되는데 sigkill 은 컨트롤 할 수가 없어서 torkim 명령을 이용하시는걸 추천드립니다

  21. dung 2017.03.02 09:52

    올려주신 강좌대로 잘 따라해서 시놀로지에 반영했는데, torrentsearch 는 작동은 되나, 1번 다운로드 후 bot이 stop 되는 현상때문에 torkim 을 사용하려니까 검색까진 되는데 다운로드 하려고 하면 "Torrent File 다운로드 시도" 만 나오고 이후에 아무 응답이 없네요.. watch_dir 에 /volume1/torrent/ 폴더로 입력하고 다운로드스테이션에서도 Watch 폴더로 지정했구요..뭐가 문제일까요?
    /gettorrent 로 .torrent 를 받아서 ds get 으로 올려서 사용중이긴한데 /torkim 으로 바로 watch 폴더에 들어가면 좋겠어요..

    • BlogIcon Acidpop acidpop 2017.03.02 11:19 신고

      일단 질문 만으로는 상황이 정확하게 파악할 수가 없습니다.

      torkim 명령 후에 응답이 없을때
      /var/log/xpebot.log 파일의
      가장 마지막 내용 50~100줄 정도의 내용을 알려주세요

좀 더 쉬운 방법으로 알림을 받을 수 있도록 포스팅 하였습니다.

 

http://blog.acidpop.kr/217

 

 


 

 

XPEnology 의 제어판을 확인해보면 "알림" 이라는 메뉴를 볼 수 있다.

 

알림 메뉴를 선택해보면 이메일, SMS, 푸시 서비스를 이용해서 XPEnology 의 주요 알림 사항을 해당 서비스로 알려주는 서비스이다.

 

단, XPEnology 는 푸시 서비스를 이용 할 수 없기 떄문에 이메일을 이용해 알림을 이용하던지 SMS를 이용해야 한다.

 

이메일 서비스를 이용하자니 간단한 메시지 조차 이메일로 확인을 해야 하는 번거로움이 있다.

 

 

여기에서는 SMS 서비스를 이용해보고자 한다.

 

1. SMS 메시지를 받아서 처리 할 수 있는 php 파일이 필요하다.

 

블로그에 라즈베리파이는 이용해서 텔레그램이 설치된 구성이 있으므로 필자는 해당 구성을 이용한다.

 

이 글을 읽는 분들은 각각 자신이 텔레그램을 설치한 시스템에 구축하면 된다.

 

라즈베리파이에는 아파치 서버 + php 서비스 + 텔레그램이 구축되어 있다.

 

/var/www/ 경로 아래에 dsmtotg.php 파는 파일을 하나 생성한다.

 

 

 

 

 


 

 

 

 

 

위 코드를 복사하여 dsmtotg.php 파일에 붙여 넣기 한다.

 

http://웹서버주소/dsmtotg.php?user=1&pass=1&body=content&title=Title&phone=Phone&type=Type

 

위 url 을 이용해서 텔레그램으로 메시지가 전달 되는지 확인한다.

 

 

 

XPEnology 에 로그인해서 제어판으로 이동한다.

 

알림 메뉴를 선택한다.

 

 

SMS 서비스 제공업체 추가 버튼을 클릭한다.

 

 

 

공급자 이름은 원하는 이름을 쓰면 된다. 여기서는 Telegram 으로 설정

 

SMS URL 부분이 중요 하다.

 

 

body 부분에 Hello%20World 라고 써줘야만 등록이 되는 이상한 현상이 있으므로 위 URL 그대로 입력한다.

 

 

 

 

각각 메뉴는 위와 같이 설정한다.

 

적용 버튼을 눌러 설정을 적용한다.

 

 

 

 

위 화면에서 "테스트 SMS 메시지 전송" 버튼을 눌러 테스트 메시지가 오는지 확인한다.

 

 

고급 탭으로 이동 하여 SMS 알림을 할 메뉴에 모두 체크한다.

 

 


 

 

기존에 구축된 웹서버 + php + 텔레그램을 이용한 방법이기에 한번에 안될수도 있습니다.

 

그리고 텔레그램의 tcp-port 를 이용해서 전달하는 방법이기때문에 Telegram BOT 만들기 강좌를 이용해서 텔레그램 서비스를 먼저 구축하신 다음 이 강좌를 따라하시면 됩니다.

 

  1. BotFather 2016.01.09 00:50

    오랜만에 들렀더니 또 좋은 정보를 주셨네요.
    요즘보니 Telegram CLI 가 아니더래도 공식 Bot API 로도 할 수 있는게 꽤 되더라구요.
    http://domoticz.com/wiki/Telegram_Bot#Using_Telegram_Bot_to_Send_Messages_with_Curl

    위 링크에서
    https://api.telegram.org/bot784324329:EETRNJU3jQEGWQdjNv3llb4bnDSDREGuuuL/sendMessage?chat_id=1234567&text=Hello
    대충 이렇게 메시지를 받는 방법까지는 찾아봤으나...PHP 같은건 전혀 모르겠어서요.
    공식 Bot API 로 DSM 알림을 받을 수 있게 PHP 좀 만들어 주실 수 있으신지요.

    새해 복 많이 받으세요.

    • BlogIcon Acidpop acidpop 2016.01.11 10:53 신고

      해당하는 BOT API 문서는 확인했습니다만
      이게 지속적으로 Polling 을 해야 하는 구조밖에 안되더라구요.

      그리고 저도 php 개발자가 아니고.. 요즘 업무가 바빠 손 쓸틈이 없네요 ㅠㅠ

  2. 2016.01.09 05:02

    비밀댓글입니다

    • BlogIcon Acidpop acidpop 2016.01.11 10:57 신고

      <!--?php 이 부분에서 "!-- 이 문자들을 빼셔야 하는게 아닌가요?

      그리고 맨 마지막 줄에 ?--> 여기에서도 -- 이 문자를 빼셔야 될거 같은데...

      <?php
      내용
      ?>

      제가 php 를 잘 몰라서..

    • 질문 2016.01.13 00:30

      감사합니다. ㅜㅜ
      말씀하신게 원인이었네요.

    • BlogIcon Acidpop acidpop 2016.01.13 09:31 신고

      php 문법을 보니 !-- ?-- 이 구간이 주석으로 처리 되는거더라구요 ^^

  3. BotFather 2016.01.13 14:58

    http://blog.stickyrice.net/archives/2015/very-basic-php-telegram-bot-wwebhooks/
    를 그대로 인용해서 적용시켰더니 텔레그램 봇으로 메시지가 잘 날아 옵니다.

    http://domoticz.com/wiki/Telegram_Bot#Test_Your_New_Bot_and_Get_Your_chat_id
    bot_token과 chat_id 는 위 링크를 참조해서 얻으면 됩니다.

    <?php
    define('BOT_TOKEN', 'YOURBOT:TOKEN');
    define('API_URL', 'https://api.telegram.org/bot'.BOT_TOKEN.'/');

    // read incoming info and grab the chatID
    $chatID = YOUR_ChatID;

    // compose reply
    $reply = sendMessage();

    // send reply
    $sendto = API_URL."sendmessage?chat_id=".$chatID."&text=".$reply;
    file_get_contents($sendto);

    function sendMessage(){
    $message = urlencode($_GET["body"]);
    return $message;
    }
    ?>

    http://my.webhost.com/telegram.php?user=1&pass=1&phone=010&body=Hello World

    이로써 기존에 Pushbullet 으로 알림을 받던
    FlexGet, Transmission 다운로드 완료, DSM 메시지를 모두 텔레그램으로 전환했습니다.

    • BlogIcon Acidpop acidpop 2016.01.13 14:58 신고

      축하드립니다 ^^

      단순히 Telegram BOT 을 이용해서 메시지 전송만 한다면 botfatehr 를 이용해서 계정을 만들고 해당 BOT 으로 메시지 전송하는게 더 편할 것 같네요. 계정도 굳이 안만들어도 되니..ㅎㅎ

      저 같은 경우는 사용자가 BOT에게 메시지를 보내서 처리하는 구조여서 좀 더 즉각적인 반응이 필요하여 lua script 를 이용하여 처리합니다.

    • BotFather 2016.01.13 15:06

      https://github.com/yagop/node-telegram-bot-api

      그 사용하시는 Telegram CLI 를 공식봇과 비슷한 NodeJS 로 작성한 봇이 있더라구요.

      일단 설치는 했는데...사용방법을 모르겠습니다.

      https://github.com/yagop/telegram-bot
      이걸 봐서는 acidpop 님께서 사용하시는 봇과 크게 다르지 않아 보이는데 말이죠. 뭐랄까 작성된 언어가 좀 다를 뿐 같은 봇 같은데...

      공식 API 와 호환이 된다니 acidpop 님 께서 만들어주신 날씨도 적용되면 참 좋을텐데 말이죠 ㅎ

    • BlogIcon Acidpop acidpop 2016.01.13 15:13 신고

      위쪽 node.js 방식 BOT은 텔레그램 공식 BOT API를 지원하는놈이군요.

      저도 요즘 텔레그램 BOT에 투자할 시간이 없어서 기능 업데이트가 안되는 상황입니다. ^^;;

      그리고 아래 링크는 예전에 확인해 봤던 BOT입니다.
      제가 작성한 방식의 BOT과 동일한 구조에요
      만약 사용하시고 싶으시다면 lua 스크립트 조금만 분석해보시면 붙여서 사용하실 수 있을겁니다.

  4. BlogIcon Acidpop acidpop 2016.01.14 12:47 신고

    아무래도 영어 스팸 필터에 걸리는것 같습니다 ㅠㅠ
    질문 게시판쪽에 올려주세요

 

 

XPEnology DSM 5.2 에 Telegram CLI 설치하기

 

 


 

 

XPEnolgy DSM 5.2 기준으로 설명합니다.

 

 

 

 

1. 패키지센터에서 debian - chroot 설치 필요

 

 

 

패키지 센터에서 설정 버튼 클릭

 

 

설정 화면에서 패키지 소스 탭을 클릭

 

추가 버튼을 클릭하고 다음 정보를 추가한다.

 

이름 : synocommunity

위치 : http://packages.synocommunity.com

 

 

 

일반 탭으로 이동한 다음 신뢰 수준을 "모든 게시자" 로 변경한다.

 

 

 

 

패키지 센터에서 커뮤니티를 선택 하고 Debian Chroot 를 설치한다.

 

 

 

 

설치가 완료 되면 작업을 클릭 한 다음 실행을 눌러 Debian Chroot 를 실행한다.

 

 

 

 

2. XPEnology 에 SSH로 접속을 한다.

 

Shell 환경에서 다음 명령어를 입력한다.

 

chroot /volume1/@appstore/debian-chroot/var/chroottarget bash

 

volume1 은 Debian Chroot 가 설치된 곳으로 지정해준다.

 

위 명령을 실행하면 기존의 Shell 과는 다른 Bash Shell 이 실행 된다.

 

 Acidpop_NAS> chroot /volume1/@appstore/debian-chroot/var/chroottarget bash
bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)
root@Acidpop_NAS:/#

 

/# 으로 시작 되는 Shell 이 나온다면 Debian Chroot 로 들어오게 된것이다.

 

이제 다음 명령어들을 차례대로 입력한다.

 

 

1. home 디렉토리로 이동

cd /home/

 

2. apt 소스 업데이트

apt-get update

 

3. 텔레그램에 필요한 라이브러리 설치 및 git, sqlite 설치

apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev make git-core python2.7-dev libjansson-dev sqlite3

 

4. Telegram CLI 소스 체크아웃
git clone --recursive https://github.com/vysheng/tg.git && cd tg

 

5. Telegram CLI Make 파일 생성

./configure


6. 소스 컴파일

make

 

 

위 명령들을 수행 하게 되면 Debian Chroot 아래에 Telegram CLI 가 설치된다.

 

나머지는 Telegram CLI BOT 강좌를 참고해서 응용하면 된다

 

 

단, BOT 강좌에 올려둔 lua 스크립트와 shell 스크립트는 Raspberry pi 기준으로 작성된 것이기 떄문에 작동이 안되는부분이 존재 할 수 있다.

 

 

 


 

Debian Chroot 한글 깨짐 현상 해결 하기

 

apt-get install locales

dpkg-reconfigure locales

 

위 명령어를 수행 한 다음 아래 목록에 있는 항목을 선택한다.

 

en_US.UTF-8

ko_KR.UTF-8

 

선택하고 OK하면 한글 깨짐 현상이 사라진다.

 

 

 


 

 

vim 설치하기

 

apt-get install vim

 

vi명령어를 vim으로 수정

vim /etc/profile

 

맨 아랫줄에 다음 구문 추가

 

alias vi='vim'

 

파일 저장 후 다음 명령 수행

source /etc/profile

 


 

https://github.com/acidpop/acidpop_tgbot.git

 

github 에 올려둔 bot 확인 결과 어느정도는 정상적으로 확인되는걸로 보입니다.

 

단, lua 스크립트와 shell 스크립트 내부에 /home/pi/tg 로 되어 있는 경로를 /home/tg 이렇게 수정을 해야 합니다.

 

XPEnology 전용 BOT 을 개발 해 봐야 할듯 합니다. ^^;


 

 

 

현재 XPEnology DSM 5.2 update 2에 시험적으로 설치해본 결과 컴파일 잘 되고 실행 잘 됩니다.

 

Docker 를 이용하는 방법도 있는것 같은데 Docker를 이용하게 되면 메모리를 너무 많이 차지 하게 될거 같더군요..

 

 

 

아래는 사용 예제입니다.

 

 

 

 

  1. BlogIcon 하얀바나나우유 2015.09.01 12:49 신고

    오오, 고맙습니다.

    XPEnology 전용 bot 개발 해주세요 ㅎ
    XPEnology 에서 트랜스미션 다운로드 완료알림 과 DSM 메시지를 텔레그램으로 받고 싶습니다.

    소중한 정보 고맙습니다.

    • BlogIcon Acidpop acidpop 2015.09.01 13:17 신고

      시간이 되는데로 해보겠습니다 ^^;
      당장은 시간이 없어서 좀 어렵습니다..

      정 급하시면 제 블로그에 있는 내용을 토대로 약간만 수정하시면 작동을 하긴 합니다

    • 하얀바나나우유 2015.10.02 02:02

      추석 잘 보내셨나요?ㅎ
      https://github.com/acidpop/acidpop_tgbot.git
      를 다운받아 사용해보려했는데 트랜스미션 다운로드 완료시 알림 받는 기능은 없는듯 싶어서요. 제가 트랜스미션 사용중이라...
      그리고 저번의 DSM 알림도 텔레그램으로 받고 싶습니다.

      개인적으로 Flexget 도 사용하는데...
      http://flexget.com/wiki/Plugins/pushbullet
      Flexget 알림을 pushbullet 으로 받는데 이것도 텔레그램으로 받을 수 있을까요?
      Flexget 에는 아직 텔레그램 plugin 이 없는거 같습니다 ㅠ.ㅜ

    • BlogIcon Acidpop acidpop 2015.10.02 10:26 신고

      안녕하세요.

      트랜스 미션의 다운로드 완료 알람은 스크립트를 이용하시면 됩니다.

      1. 트랜스미션 서비스를 중단.
      2. 트랜스미션의 settings.json 파일을 수정
      - script-torrent-done-enabled": false 이 부분의 false 를 true 로 변경
      - script-torrent-done-filename": ""
      큰 따옴표 안에 실행 할 쉘 스크립트 경로와 파일 이름을 넣어주세요. (예 : /volume1/homes/admin/trnoty.sh)



      쉘 스크립트 내용은 다음과 같이 작성 하시면 됩니다.

      #! /bin/sh

      echo "msg 홍길동 $TR_TORRENT_NAME 다운로드 완료" | nc localhost 8888

      작성 하신 다음 실행 권한을 줍니다.
      sudo chmod 755 /volume1/homes/admin/trnoty.sh

      이렇게 하시고 트랜스 미션 서비스를 다시 시작 하시면 됩니다.

      트랜스 미션에서 script-torrent-done-filename 이 부분에 쉘 스크립트 경로를 입력 하면
      몇몇 변수를 사용 하실 수 있습니다.
      •TR_APP_VERSION
      •TR_TIME_LOCALTIME
      •TR_TORRENT_DIR
      •TR_TORRENT_HASH
      •TR_TORRENT_ID
      •TR_TORRENT_NAME

      자세한 사항은 https://trac.transmissionbt.com/wiki/Scripts
      여기를 참고하시면 되구요.

      flexget 은 제가 사용을 안해서 잘은 모르겠네요 ^^;

    • 하얀바나나우유 2015.10.03 03:32

      알려 주신 방법은 전부터 그렇게 사용하고 있습니다. Pushbullet 으로 알림을 받고 있죠.
      이걸 텔레그램 봇으로 알림을 받으려면 sh 내부에 텔레그램 관련 명령어 같은것들을 넣어할텐데 그걸 모릅니다.

      | nc localhost 8888
      뒤에 이부분이 텔레그램으로 봇으로 알림을 받는 부분인가요?

    • BlogIcon Acidpop acidpop 2015.10.05 15:29 신고

      chroot_debian 에서 텔레그램 실행 하실때
      -P 8888 이 옵션이 8888 포트로 오는 내용을 받겠다 라는 의미 입니다.
      즉, 8888 포트로 텔레그램 CLI 메시지를 보내면 똑같이 작동 하는구조구요.
      nc 는 netcat 이라고 리눅스용 유틸리티 입니다.

      echo "msg 홍길동 $TR_TORRENT_NAME 다운로드 완료" | nc localhost 8888

      위와 같이 수행 하면 8888 포트로
      "msg 홍길동 $TR_TORRENT_NAME 다운로드 완료"
      라는 텍스트를 그대로 전송 하게 해주는 유틸리티입니다.

  2. BlogIcon Shekinah 2015.09.02 11:47 신고

    debian을 다시 재설치하고 재부팅하니 apt-get이 되네요~ usr/bin/ 경로에는 파일이 없지만요~

    텔레그램 설치를 하고 폰 번호를 입력하는 부분에서 잘못 입력했는데, 수정하는 방법을 못찾겠네요...

    그리고 home 폴더에 직접 winscp로 접속해서 인증파일을 삭제하고 다시 해보려고했더니, home폴더는 volume1에 보이지 않네요~ㅠ

    또한, vovox나 textplus 어플로 생성한 번호는 죄다 맞지 않는다고 뜨네요...

    답변 감사드립니다~

    • BlogIcon Acidpop acidpop 2015.09.02 11:57 신고

      debian chroot 쉘로 접속 하셨다면

      chroot 접속(실행)한 상태에서

      cd /root 로 가셔서
      ls -al 이라고 쳐보면

      .telegram-cli 이 디렉토리가 보일겁니다.

      rm -rf ./.telegram-cli

      이렇게 삭제 하시고 다시 실행하시면 됩니다.

      textplus 는 안되나요?
      앞에 국가코드까지 다 넣으셔야 됩니다.
      만약 대한민국 국적번호로 111-2222
      라면 "+821112222"

      이렇게 +기호화 국가코드 그리고 전화번호가 들어가야 합니다.


      그리고 home 폴더는 DSM 관리 웹페이지 가셔서
      제어판 -> 사용자 -> 고급 탭 -> 사용자 홈 서비스 활성화
      이걸 체크 하셔야 보입니다.

    • BlogIcon Shekinah 2015.09.02 12:18 신고

      특이하게, 명령어로 치면 root/home/ 폴더에 접근이 가능한데
      winscp 같이 ui로 봐지는 것에는 home폴더를 못찾겠네요~
      사용자 홈 서비스 활성화는 해놨구요~

      내컴퓨터에서 \\\나스이름\ 으로 들어가면 home폴더는 보이지만 설치한 텔레그램 폴더가 보이지 않는 현상이네요..

      뭐 putty로 접근이 가능하니 별 문제될건 없는 것 같구요.

      textplus번호나 다른 어플 번호는 텔레그램에서 막은 것 같네요~
      pc버전으로 인증받으려고하니 올바른 번호가 아니라고 뜹니다...

      인증문제부터 해결해야겠네요 ㅠ 감사합니다~

    • BlogIcon Acidpop acidpop 2015.09.02 12:57 신고

      winscp 나 네트워크 드라이브 형태로 접근 하신다면
      다음 경로에 chroot 가 존재합니다.
      /volume1/@appstore/debian-chroot/var/chroottarget

      chroot 가 XPEnology 위에서 debian 리눅스를 돌리는 개념(?)으로 보셔야 되요.
      합해진 시스템이 아닙니다 ^^;

      textplus 가 막혔군요? ㅠㅠ

    • BlogIcon Shekinah 2015.09.02 13:30 신고

      답변 감사합니다!

      데이터 쉐어링 사용중이라 그걸로 인증을 받았네요 ㅠ 드디어 안녕이라고 치면, 반응 메세지가 뜹니다 ! 감사합니다~

      이제 데몬 등록하려고 메세지를 입력했더니 다음과 같이 뜨네요.

      root@Noel_Nas:/home/tg# bin/telegram-cli -s bot/basicbot.lua -d &
      [3] 16676
      root@Noel_Nas:/home/tg# change_user_group: can't find the user telegramd to switch to

      한 번 봐주시면 감사하겠습니다ㅠ

    • BlogIcon Acidpop acidpop 2015.09.02 13:37 신고

      root@Noel_Nas:/home/tg# change_user_group: can't find the user telegramd to switch to

      이 에러메시지는 무시 하셔도 됩니다.

      [3] 16676
      이 메시지가 지금 Telegram 이 데몬으로 실행 되었다는걸로 보시면 됩니다. 이 숫자를 Telegram CLI 의 process ID 입니다.
      PID라고 하죠.

      해당 숫자를 잘 기억 하시고 Telegram CLI 를 종료 하시려면
      kill -9 16676
      이렇게 하시면 됩니다.

      만약 PID 를 잊어버리셨다면 chroot 상태가 아닌 XPEnology 의SSH로 접속 하셔서
      ps | grep telegram
      이렇게 치시면 나옵니다.

      '|' 이 기호는 '\' 이 키를 shift 누르고 입력하는 문자입니다.

    • BlogIcon Shekinah 2015.09.02 14:08 신고

      감사합니다~
      갑자기 이 단계에서 정전이 되어버려서 재부팅했더니, 봇이 작동을 안하고 있어서
      bin/telegram-cli -s bot/basicbot.lua -P 8888 -d &
      이 단계까지 넘어갔더니 작동하는데, 이제는 재부팅해도 저절로 작동이 되는거 맞는지요?

      그리고 그 다음 단계에서 로그 파일을 기록하려고 했더니
      sudo 명령어가 실행이 안됩니다~ㅠㅠ

      root@Noel_Nas:/home/tg# sudo echo "" > /var/log/telegram.log
      bash: sudo: command not found
      root@Noel_Nas:/home/tg# echo "" > /var/log/telegram.log
      root@Noel_Nas:/home/tg# chown pi:pi /var/log/telegram.log
      chown: invalid user: 'pi:pi'
      root@Noel_Nas:/home/tg#

      그리고 또 그냥 다음 단계로 넘어가서 tg.sh 파일을 저장하고

      sudo chown pi:pi tg.sh 명령은 역시나 sudo가 먹히지 않아서 그냥 넘어가고 권한만 755로 준 다음 ./tg.sh status를 실행하니 예시와 같이 나오지 않고 아래와 같이 나옵니다.

      /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)
      Usage : tg.sh [ start | stop | chk ]

    • BlogIcon Acidpop acidpop 2015.09.02 16:28 신고

      아.. XPEnology 는 현재 telegram cli가 서비스로 등록이 되어 있질 않은 상태입니다.
      즉, 재부팅 하면 다시 실행 해주셔야 합니다.

      그리고 debian chroot 자체가 root 권한으로 실행 되기 때문에 sudo 명령어는 안쓰셔도 되구요.

      chown pi:pi 이 부분은 라즈베리파이 에서 pi 계정으로 설정해주는 명령어 입니다. 즉, 안하셔도 됩니다.

      tg.sh 파일 역시 라즈베리파이 기준으로 작성된것이기 때문에 작동을 보장 할 수 없습니다 ^^;

      지금 현재로서는 telegram-cli -s basicbot.lua -d &
      처럼 직접 명령어를 쳐서 실행 하시는게 가장 간단합니다.

      root 권한이므로 다른것들 할 필요 없이 다음 명령어로 실행하면 될것 같네요.

      bin/telegram-cli -s bot/basicbot.lua -L /var/log/telegram-cli.log -P 8888 -e "contact_list" -d &

      다시 한번 말씀 드리지만 Telegram CLI 강좌는 라즈베리파이 기준으로 설명 되어 있고 XPEnology 는 설치와 실행 정도만 테스트 해본정도입니다.

    • BlogIcon Shekinah 2015.09.02 16:41 신고

      계속 상세한 답변 감사드립니다~

      일단 여기까지가 할 수 있는 부분인것 같네요ㅎㅎ

      다음에 XPEnology 용으로 올리시는 글 기다리고 있겠습니다~

      특히 토렌트 관련해서 만드신 부분이 꼭 알고 싶네요!

      정말 감사드립니다!

  3. BlogIcon Shekinah 2015.09.04 17:52 신고

    하나 더 다른 질문을 좀 드리고 싶은데요 ㅠ

    제가 nas에다가 wake on lan 을 설치해서 sh 파일을 만든 후에, 같은 네트워크에 있는 데스크탑을 wol하려고 하는데,
    chroot /volume1/@appstore/debian-chroot/var/chroottarget bash 이 명령어를 사용해야

    apt-get update && apt-get install wakeonlan 이게 설치가 되더라구요. 그리고 vi wol.sh 파일을 만들었는데.

    chroot /volume1/@appstore/debian-chroot/var/chroottarget bash 이 명령어 없이는 sh wol.sh 실행이 안되네요.

    혹시 기본으로 chroot /volume1/@appstore/debian-chroot/var/chroottarget bash 이 명령이 자동실행될 수는 없는건가요?

    제가 폰으로 바로 터미널 접속해서 sh wol.sh 만 실행는걸 해보려고 하는 중인데, 여기가 막히네요 ㅠ

    답변 미리 감사드립니다!


    Noel_Nas> sh wol.sh
    wol.sh: line 1: wakeonlan: not found
    Noel_Nas>
    Noel_Nas> chroot /volume1/@appstore/debian-chroot/var/chroottarget bash
    bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)
    root@Noel_Nas:/# sh wol.sh
    perl: warning: Setting locale failed.
    perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = "en_US.utf8",
    LANG = "en_US.utf8"
    are supported and installed on your system.
    perl: warning: Falling back to the standard locale ("C";).
    Sending magic packet to 255.255.255.255:9 with xx:xx:xx:xx:xx

    • BlogIcon Acidpop acidpop 2015.09.07 09:34 신고

      생각하시는것보다 상당히 간단합니다...

      chroot /volume1/@appstore/debian-chroot/var/chroottarget bash /home/test.sh


      chroot bash 명령 뒤에 해당 shell script 경로를 써주시면 됩니다.
      단, 경로는 chroot 상에서의 경로입니다.

      wol.sh 파일을 최상위 경로에 생성하신거 같은데

      다음과 같이 사용하시면 될듯 하네요.

      chroot /volume1/@appstore/debian-chroot/var/chroottarget bash /wol.sh

    • BlogIcon Shekinah 2015.09.07 10:07 신고

      아 이런 간단한 방법이... 감사합니다~
      그렇다면 이 실행문을 sh 안에 넣어두고 실행할 수 있을까요?

      지금 제가 하려고 하는게, 클라이언트에 저장한 sh 파일을 실행하면, 서버에 있는 wol.sh 파일이 실행되어 컴퓨터를 키려고 하는거거든요...

      서버랑, 컴퓨터랑 같은 공유기고, 클라이언트는 외부입니다.

      클라이언트에서는 root@아이피 하면 바로 비밀번호 없이 로그인 될 수 있게 https://opentutorials.org/module/432/3742 이 글을 참조해서 셋팅은 해놨구요...

      클라이언트 sh 파일에 어떻게 써야할지 찾아봐도 쉽지가 않은데..

      #!/bin/sh
      root@아이피 ## 클라이언트에서 서버로 바로 로그인
      chroot /volume1/@appstore/debian-chroot/var/chroottarget bash /wol.sh ##서버에 있는 wol.sh파일을 실행

      이런식으로 했더니 아예 되질 않네요 ㅠ 도움 부탁드립니다ㅠ

    • BlogIcon Acidpop acidpop 2015.09.07 10:44 신고

      똑같이 응용해보시면 될거 같은데요...

      root@아이피 "chroot /volume1/@appstore/debian-chroot/var/chroottarget bash /wol.sh"

      뒤쪽 chroot 는 큰 따옴표로 묶으시면 되구요.

    • BlogIcon Shekinah 2015.09.07 13:35 신고

      감사합니다 ㅠ

      sh 파일에
      ssh root@아이피 "chroot /volume1/@appstore/debian-chroot/var/chroottarget bash /wol.sh"
      로 해결했습니다 ㅎㅎ 정말 감사합니다 !

  4. Hue 2015.09.24 15:07

    알려주신 정보대로 차근차근 따라해서 텔레그램 메세지 수신과 발신 모두 성공했습니다1! 감사합니다 ㅎㅎ

    하지만 아직 반쪽짜리인것이 github에 올려놓으신 봇을 다운받아서 경로 수정 후 이용해봤는데 사용이 다 안되더라구요ㅜ

    예를 들어 날씨의 경우 "날씨 **동" 이란 command를 작성하게되면 봇에서 답장이 경기도 **시 **동 까지는 오고 날씨예보가 날라오질 않더라구요, 토렌트의 경우는 토렌트 없음으로 뜨구요.

    경로수정말고 어떤부분을 또 수정해야하는건가요??

    • BlogIcon Acidpop acidpop 2015.09.24 16:29 신고

      안녕하세요 ^^;
      제가 쉘 모드라는 기능을 추가 하면서 전역 변수 이름을
      잘못 만들어 버려서 shell_path 라는 변수를 공백으로 지워버리는 문제가 있었습니다.
      github에 다시 커밋 해놓았으니 다시 받으셔서 해보시면 될겁니다

  5. 도막사라모 2015.10.10 23:42

    안녕하세요
    좋은 정보 정말 감사합니다.
    현재 xpenology 5.0 에 설치 했는데 많은 문제 없이 잘 실행 됩니다.
    하나 해결하고 싶은게 있는데요 download station 에서 마그넷을 다운 받게 하려면 어떻게 해야 하는지 알수 있을까요?

    • BlogIcon Acidpop acidpop 2015.10.12 10:37 신고

      안녕하세요
      Downlaod Station 에 마그넷 링크를 추가 하는 방법은 아래와 같습니다.

      psql -U postgres -d download -At -c "INSERT INTO download_queue (username, url, status, filename, pid, created_time, destination) VALUES ('dsm_id', 'magnet:?xt=urn:btih:A7D', 1, 'Magnet Link', 23876, 1444475976, 'download/torrent');"

      VALUES 뒷 부분에 dsm_id 는 DSM 에서 사용하는 사용자 ID
      url = 마그넷 링크
      status = 1 로 설정
      file name = 파일 이름
      pid 는 그냥 아무 숫자나 넣어도 상관 없습니다
      create_time = date +%s 를 실행한 값
      destination = 다운로드 받을 경로 입니다.

    • 도막사라모 2015.10.15 14:44

      ㄴ 답변 감사드립니다.
      chroot 에서는 psql 명령어를 사용할수가 없는데요... 어떠한 방법으로 사용할수가 있을까요? ㅠㅠ

    • BlogIcon Acidpop acidpop 2015.10.15 16:02 신고

      안녕하세요
      chroot 상에서 사용하시려는 목적이었군요 ^^;;

      chroot 에서 직접 psql 로 접근은 안될겁니다.

      저 같은 경우는 XPenology 에 웹 서버봐 php 서비스를 실행 되게 해놓고
      php 파일을 하나 짜서 올려놓고
      curl 명령으로 해당 php 파일을 호출합니다.

      즉, 실제 DB 를 사용하는 명령어는 php 로 작성해서 만들어 놓고
      chroot 나 또는 다른 시스템에서는 curl http://xpenology_ip:port/test.php --data-urlencode query="select * from test;"

      위와 같은 방식으로 호출 해서 사용합니다.

      Magnet 링크 추가 하는 Telegram 측 루아 스크립트와
      XPenology 측 php 파일 일부분을 질문 게시판쪽에 올려놓겠습니다.

      참고 하시면 됩니다.

  6. 놀러왔습니다. 2015.11.04 11:04

    클리앙 나스당에서 보고 놀러왔습니다.
    뭔가 손대기가 초보 입장에서 어렵네요 ㅎ

    XPEnology 봇 만들어 주시면 감사히 잘 사용하겠습니다 ㅎ

    • BlogIcon Acidpop acidpop 2015.11.04 11:08 신고

      안녕하세요 ^^

      XPEnology BOT 은 제가 요즘 작업할 시간이 없어서 계속 미뤄지게 되네요 ㅠㅠ

      개발이 완료되는데로 바로 포스팅 하겠습니다.

      감사합니다.

  7. fabric 2015.11.07 22:12

    https://i.imgur.com/7nDM8sU.png

    Debian Chroot 한글 깨짐 현상 해결 하기

    dpkg-reconfigure locales

    위 명령어를 수행 한 다음 아래 목록에 있는 항목을 선택한다.

    en_US.UTF-8
    ko_KR.UTF-8

    선택하고 OK하면 한글 깨짐 현상이 사라진다.

    이 부분 dpkg-reconfigure locales 입력했더니 이미지처럼 저렇게 뜨네요.
    한글 깨짐은 확인 못 했으나 입력하니 저러는데 locals 가 설치 안 된 모양인데...다시 해야하는건가요?

    • BlogIcon Acidpop acidpop 2015.11.09 13:42 신고

      안녕하세요

      답변이 좀 늦었습니다.

      제가 이것저것 테스트 하다가 한국어 로케일 설정을 한거다 보니
      중간에 뭔가 과정이 누락된걸로 보입니다.

      일단 다음 명령어를 차례대로 수행해 주세요.

      apt-get install locales

      locale

      locale-gen "en_US.UTF-8"
      locale-gen "ko_KR.UTF-8"

      제가 지금 chroot 를 설정해놓은 상태여서 확답은 안되지만
      시도해 보시고 다시 알려주세요.

    • fabric 2015.11.10 02:18

      네, 알려주신대로 locales 설치하고 설정 완료 했습니다. 고맙습니다 ㅎ

    • BlogIcon Acidpop acidpop 2015.11.10 10:34 신고

      해결 되셨다니 다행입니다. ^^

  8. 도막사라모 2015.11.22 21:21

    안녕하세요.
    telegram-cli 프로세스가 죽었을때 다시 살리는 스크립트를 만들수 있을까요?
    chroot 에서 실행이 되다 보니 다른 포스트에 있는 글을 참조해도 좀처럼 쉽지가 않네요 ㅠㅠ

    • BlogIcon Acidpop acidpop 2015.11.23 14:13 신고

      안녕하세요
      답변이 좀 늦었습니다.

      아래 스크립트를 참고하셔서 if 와 else 사이 구문만 적절하게 바꿔서 쓰시면 될것 같습니다.

      #!/bin/sh

      while :
      do
      PID=`/bin/ps -e -u 0 | /bin/grep -w telegram-cli | awk '{print $1}'`
      if [ $PID ]; then
      echo "Telegram is Execute..."
      else
      echo "Telegram is not Execute..."
      fi

      sleep 1
      done

      이 스크립트는 당연히 데몬으로 돌려야 하구요.

      데몬으로 하는게 싫으시다면 while do done 구문을 없애고 나머지 부분만 남겨둔채 1초에 한번씩 해당 스크립트를 실행하셔도 됩니다.

      else 구문의 echo 구문 아래쪽에 sudo service telegramd start 명령을 추가 하시면 될듯 하네요

  9. hello 2015.12.15 15:39

    XPEnology 에서 날씨가 제대로 안 되는것 같습니다. 설치는 완료했고 날씨에 대한 반응도 옵니다만, 동네명 아래로 온도 : C 까지만 날아옵니다. 그리고 저항계산기도 해봤는데 응답이 없고, 토렌트 검색은 어떻게 하는건가요?

    설치는 제대로 된거 같은데 말이죠. 내부에 /home/pi/tg 도 /home/tg 로 수정할만한건 다 수정했습니다.

    • BlogIcon Acidpop acidpop 2015.12.15 16:17 신고

      동네 조회는 아래 명령어가 정상적으로 작동 하는지 먼저 수행해보세요

      curl -s "http://www.kma.go.kr/wid/queryDFSRSS.jsp?zone=1111061500"

      1차로 위 curl 명령을 했을때 정보를 제대로 가져오는지 확인하시구요

      2차로 아래 명령을 실행해보세요
      curl -s "http://www.kma.go.kr/wid/queryDFSRSS.jsp?zone=1111061500" | xmlstarlet sel -t -c "/rss/channel/item/description/body/data[@seq="0"]" | xml2 | grep -E 'temp|wfKor|pop|ws|wdKor|reh' | cut -d '=' -f 2

      6.0
      구름 많음
      20
      4.0

      55

      위 처럼 6줄이 나오면 텔레그램 봇도 정상적으로 나올겁니다.

      저항계산기는 응답이 없다고 하셨는데..
      텔레그램 경로로 가셔서
      bin/telegram-cli -s bot/basicbot.lua
      위와 같이 실행 한 다음 저항 계산기 라고 메시지를 보내고 나서
      나오는 화면 내용을 알려주세요

      그리고 토렌트 검색은 뭐가 안되나요?

    • hello 2015.12.15 20:42

      그리고 날씨 삼성동 뭐 이렇게 입력했다고치면...대략 30-40분 후에도 날씨에 대한 응답이 날아 옵니다. 처음 날씨 삼성동 넣을때 바로 응답을 받고 30-40분후에도 이상하게 날아오더라구요.

    • BlogIcon Acidpop acidpop 2015.12.16 09:49 신고

      저항계산기 같은 경우는 사용법이 잘못됐네요 ^^;

      저항 계산기 이렇게 쓰는게 아니라..

      저항 갈주적금

      이런식으로 사용하시면 됩니다.

      위 명령들은 ssh 접속 하셔서 chroot_debian 으로 들어가셔서 실행 해보시면 됩니다.

      날씨 관련해서는 이정도 정보만 가지고는 판단을 못하겠네요.

      토렌트는 bot/shell 디렉토리에 보시면 tdget.sh 라는 파일이 있습니다.

      이 파일을 열어 보시면 RSS를 지원하는 토렌트 사이트에서 RSS 구조로 토렌트 내용을 검색하는 구조인데

      torrentproject 는 요근래 들어서 작동을 안하는것 같고..

      그 아래에 있는 사이트는 은 http 에서 https 로 변경이 되서 그런걸로 보입니다.

      github 에서 tdget.sh 파일만 다시 받아주시면 됩니다.

    • hello 2015.12.16 12:46

      날씨는 curl 이 설치 안되서 그런거 였네요. 따라하면서 빠진 부분은 없었던거 같은데...

    • BlogIcon Acidpop acidpop 2015.12.16 12:48 신고

      그렇군요..

      XPEnology 에 debian_chroot는 curl 이 기본으로 설치가 안되는것일수도 있습니다.

    • hello 2015.12.16 12:52

      토랭이는 따로 받는데가 있어서 상관없지만, 봇 설치하고서 잘 안 되서 문의 드리면서 같이 여쭤 본 겁니다. 날씨가 안 되서 말이죠. 리눅스나 이런 명령어는 젬병이라...

      아무튼 지금 날씨 랑 알려주신 저항계산기 사용은 잘 됩니다. 고맙습니다.

    • BlogIcon Acidpop acidpop 2015.12.16 13:16 신고

      해결이 되셨다니 다행입니다.

  10. hello 2015.12.16 15:59

    https://github.com/yagop/telegram-bot

    google map 이라던가 gps 이외에도 여러기능이 있는 봇이던데 이거 설치해서 같이 사용해도 문제 없나요?
    설치가 되는지 혹은 설치 후 사용할때 하나만 작동한다던지 하는 문제가 발생하지 않을까 여쭤 봅니다.

+ Recent posts