ssh 접속 등 텔레그램으로 데이터를 받고 싶을때 curl 로 전송하면 되는데 간혹 한글이 입력되는경우 전송이 안되는 경우가 있다
이럴땐 iconv 명령어로 진행하면 된다
ID와 TOKEN의 값은 지난 블로그 내용을 참고하면 된다
https://xinet.kr/?p=1560
발송 쉘 스크립트
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#!/usr/bin/env bash # Telegram Bot send # Dev / jsh # Update / 2024.04.26 # ##################################################################### # ID="70xxxxxxx" TOKEN="6838831474:xxxxxxxxxxxxxxxxxxxxYlHtwnA" URL="https://api.telegram.org/bot$TOKEN/sendMessage" DATE="$( date "+%Y-%m-%d %H:%M")" # #################################################################### USER=`whoami` TTY=`tty |sed -e 's/\/dev\///'` IP_ADDRESS=`w |grep "$TTY " |awk {'print $3'}` #SRV_HOSTNAME=$(hostname -f) #CLIENT_IP=$(echo $SSH_CLIENT | awk '{print $1}') SRV_IP=$(hostname -I | awk '{print $1}') GEOIP=`geoiplookup $IP_ADDRESS | grep "Country" | awk -F, '{print $2}'` TEXT="서버 로그인이 감지 되었습니다. - 서버 : $SRV_IP - 로그인 ID : $USER - 접속 IP : $IP_ADDRESS - 접속국가:$GEOIP - TIME : $DATE" encoded_data=$(echo -n "$TEXT" | iconv -t utf-8) curl -X POST --silent --output /dev/null $URL -d chat_id=$ID -d text="$encoded_data" |