기본 콘텐츠로 건너뛰기

추천 가젯

리눅스 홈서버 알림용 텔레그램 봇(Telegram Bot) 연동 및 쉘 스크립트 구축 가이드

개인 홈서버를 운영하다 보면 백업 완료 여부나 시스템 에러 같은 단방향 알림을 스마트폰으로 빠르게 받아보고 싶어집니다. 외부 메일 서버나 복잡한 SMTP 설정을 거치지 않고, 가장 확실하고 가볍게 쓸 수 있는 텔레그램 봇을 이용한 홈서버 알림 구축 방법 을 정리합니다. 1단계: 텔레그램 봇 생성하기 (BotFather) 텔레그램 앱을 켜고 상단 검색창에 BotFather 를 검색하여 공식 봇(파란색 체크마크 확인)을 엽니다. 대화창에 아래 명령어를 입력하여 새로운 봇을 만듭니다. Plaintext /newbot 봇의 이름(Name)을 입력합니다. (예: My Home Server Bot ) 봇의 아이디(Username)를 입력합니다. (반드시 영문이며 끝에 bot 또는 _bot 으로 끝나야 합니다. 예: my_home_backup_bot ) 생성이 완료되면 HTTP API 토큰(Token)이 발급됩니다. 이 토큰을 안전하게 보관합니다. 2단계: 내 Chat ID(채팅방 고유 번호) 확인하기 텔레그램은 보안상 사용자가 먼저 봇에게 말을 걸어야 메시지를 받을 수 있으며, 봇이 나에게 메시지를 보내려면 고유 Chat ID 가 필요합니다. 텔레그램 검색창에 userinfobot 을 검색하여 들어갑니다. 하단의 [시작하기] 버튼을 누르면 내 계정의 정보와 함께 Id (숫자) 값을 알려줍니다. 이 숫자를 복사해 둡니다. [중요] 1단계에서 만든 내 봇의 아이디(예: @my_home_backup_bot )를 검색해서 대화창을 열고, [시작] 버튼을 누르거나 아무 메시지나 먼저 한 번 전송해 둡니다. 3단계: 리눅스 쉘 스크립트 작성 및 테스트 서버(터미널)에서 환경변수를 설정하고 curl 명령어를 통해 테스트 메시지를 보낼 수 있습니다. 특히 인자값이 없을 때를 대비해 기본값 처리를 해두면 유용합니다. 아래 내용을 포함하는 쉘 스크립트 파일(예: send_telegram.sh )을 작성합니다. Bash #!/bin/bash # 환경변수 설정 (실제 토큰과 C...

X-touch mini relative{1,2,3} 모드와 ardour general midi map 맞추기.

 일단 마키모드의 Pot1..8 기능이 정말 훌륭한 기능이긴하다만, Ardour에서 에러가 너무나며, 

Bank Next 버튼 등이 없다. 고로 잘 세팅이 되도 8채널만 쓴다고 생각해야 할 것이다. 


결국은 General midi로 변화를 주어야 할텐데, x-touch editor에서는 mackie모드 같은 느낌의 

상대적 변화 모드 세팅이 총 relative1, relative2, relative3으로 세가지가 있어서, 어떤게 맥키 모드인지 알 수가 없다. Ardour는 자체적으로 enc-r, enc-l, enc-2, enc-b 모드로 4가지의 상대적 인코더 변화 모드를 지원한다. 

이 3x4의 경우의 수 중에 서로 맞는게 하나는 있을거라, 지원을 해주는 것일 테니, 일일이 테스트를 해보는 수밖에 없을 것이다. 해보자. 


Ardour는 4가지의 모드를 말로 그리고 예제로 설명하므로 X-touch를 실험해보자.


먼저 인코더1은 relative1로 인코더2는 2로 인코더3은 3으로 설정한 후 확인할 수 있다. 


인코더 1은 오른쪽으로 돌릴 때,  01(속도에따라 02,03으로 올라감) 왼쪽으로 돌릴 때, 7f가 나온다. 7bit 2의 보수 방식이다. 7f(16) --> 1111111 -> - (~(111111) +1)  ->  -1(16)

인코더 2는 우로 41, 좌로 3f가 나온다. 0x40 즉 64를 기준으로 작동하는 방식이다. 

인코더 3은 우로 돌릴 때, 1 좌로 돌릴 때 41이 나온다. 64보다 크면 - 부호가 붙는 방식이다. 7번째 비트가 부호를 말하며, 보수는 사용치 않는다. 


이 3개의 인코더에 해당하는 모드를 Ardour의 설명으로 찾으면 다음과 같다. 

Ardour의 enc-r은 0svvvvvv 부호비트가 있으면 positive라고 한다. 

Ardour의 enc-l도 0svvvvvv  이며 부호 비트가 없으면 positive라고 한다.  이 것이 맥키 프로토콜이 사용하는 방식이다. relative3(Mackie)라고만 배링거가 써줬으면 얼마나 좋았을까...

이건 시간이 나면, binary에서 relative3을 찾아 mackie로 바꾸면 쉽게 이해할 수 있겠다. 

enc-l    = relative3 이며, enc-r ~= relative3  도 유사하다


Ardour의 enc-2는 이름부터 2의 보수 느낌이 난다. 0-64는 양수이며, 그 이상은 7비트 부호 숫자 기준으로 2의 보수를 취한다. 

enc-2    = relative1 이다.

Ardour의 enc-b는 Relative Binary Offset으로 64를 기준으로 차이값을 말한다. 

enc-b   = relative2 이다.

<Binding channel="2"  ctl="17"                   uri="/route/pan       B2"/> 이런 식으로 써진, midi map을 변환할 수 있다. 

ctl을 enc-l로 바꾼다.  X-touch editor를 사용해, 기본 셋팅 파일을 불러온 후, Encoder의 Minimum을 눌러, relative3으로 바꾼다. 

X-touch mini로 덤프를 하고, 해당 설정 파일을 LayerA_enc-l LayerB enc-r이라는 이름으로 저장해, 헛갈릴 일이 없도록 준비를 하자. 

그 후로는 다양한 일을 할 수 있다. 



댓글