추천 가젯

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

개인 홈서버를 운영하다 보면 백업 완료 여부나 시스템 에러 같은 단방향 알림을 스마트폰으로 빠르게 받아보고 싶어집니다. 외부 메일 서버나 복잡한 SMTP 설정을 거치지 않고, 가장 확실하고 가볍게 쓸 수 있는 텔레그램 봇을 이용한 홈서버 알림 구축 방법을 정리합니다.


1단계: 텔레그램 봇 생성하기 (BotFather)

  1. 텔레그램 앱을 켜고 상단 검색창에 BotFather를 검색하여 공식 봇(파란색 체크마크 확인)을 엽니다.

  2. 대화창에 아래 명령어를 입력하여 새로운 봇을 만듭니다.

    Plaintext
    /newbot
    
  3. 봇의 이름(Name)을 입력합니다. (예: My Home Server Bot)

  4. 봇의 아이디(Username)를 입력합니다. (반드시 영문이며 끝에 bot 또는 _bot으로 끝나야 합니다. 예: my_home_backup_bot)

  5. 생성이 완료되면 HTTP API 토큰(Token)이 발급됩니다. 이 토큰을 안전하게 보관합니다.


2단계: 내 Chat ID(채팅방 고유 번호) 확인하기

텔레그램은 보안상 사용자가 먼저 봇에게 말을 걸어야 메시지를 받을 수 있으며, 봇이 나에게 메시지를 보내려면 고유 Chat ID가 필요합니다.

  1. 텔레그램 검색창에 userinfobot을 검색하여 들어갑니다.

  2. 하단의 [시작하기] 버튼을 누르면 내 계정의 정보와 함께 Id (숫자) 값을 알려줍니다. 이 숫자를 복사해 둡니다.

  3. [중요] 1단계에서 만든 내 봇의 아이디(예: @my_home_backup_bot)를 검색해서 대화창을 열고, [시작] 버튼을 누르거나 아무 메시지나 먼저 한 번 전송해 둡니다.


3단계: 리눅스 쉘 스크립트 작성 및 테스트

서버(터미널)에서 환경변수를 설정하고 curl 명령어를 통해 테스트 메시지를 보낼 수 있습니다. 특히 인자값이 없을 때를 대비해 기본값 처리를 해두면 유용합니다.

아래 내용을 포함하는 쉘 스크립트 파일(예: send_telegram.sh)을 작성합니다.

Bash
#!/bin/bash

# 환경변수 설정 (실제 토큰과 Chat ID 입력)
TELEGRAM_API_TOKEN="발급받은_API_토큰"
INFINITEKH_CHAT_ID="내_Chat_ID_숫자"

# 인자($1)가 없으면 기본 테스트 메시지 사용
MESSAGE="${1:-테스트 알림: 홈서버 작동 확인완료!}"

# 텔레그램 API로 메시지 전송
curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_API_TOKEN}/sendMessage" \
     -d "chat_id=${INFINITEKH_CHAT_ID}" \
     -d "text=${MESSAGE}" > /dev/null

echo "텔레그램 알림 전송 완료!"

실행 방법 및 테스트

  1. 스크립트에 실행 권한을 부여합니다.

    Bash
    chmod +x send_telegram.sh
    
  2. 인자 없이 실행하여 기본 테스트 메시지를 보냅니다.

    Bash
    ./send_telegram.sh
    
  3. 원하는 메시지를 인자로 넘겨서 보냅니다.

    Bash
    ./send_telegram.sh "백업 작업이 성공적으로 완료되었습니다."
    

마무리하며

복잡한 이메일 인증이나 포트 개방, 신용카드 등록이 필요한 외부 API 서비스를 쓸 필요 없이, 텔레그램 봇과 간단한 curl 명령어 조합만으로도 홈서버의 든든한 알림망을 구축할 수 있습니다. 백업 스크립트나 시스템 모니터링 크론잡(Cronjob) 하단에 해당 스크립트 호출 한 줄만 추가해 보세요!

댓글