[Ubuntu] SSH 접속 시 텔레그램 알람보내기 #4 (최종편)
SSH 접속 시 텔레그램 알람보내기 최종편이다. 마무리만 남았는데도 손에 안잡혀서 미루다보니 거의 4달을 미룬거 같다. 숙제처럼 계속 남아있는 느낌이 들어서 마무리하려고 한다.
연관 포스트
- [Ubuntu] SSH 접속 시 텔레그램 알람보내기 #1 (봇생성편)
- [Ubuntu] SSH 접속 시 텔레그램 알람보내기 #2 (메시지발송편)
- [Ubuntu] SSH 접속 시 텔레그램 알람보내기 #3 (명령어로 메시지발송 테스트)
- [Ubuntu] SSH 접속 시 텔레그램 알람보내기 #4 (최종편)
A. .bashrc 변경
SSH로 접속하면 홈디렉토리에 .bashrc를 호출하게 되니 해당 파일에 지난 편에서 생성한 LoginAlarm.sh를 호출하는 구문을 추가하면 될 것 같다.
$ vi ~/.bashrc
.bashrc 파일의 가장 하단에 아래의 내용을 추가한다.
~/.telegram/LoginAlarm.sh
그 뒤에 새로운 ssh 세션을 열면 아래와 같이....
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 6.2.0-36-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Expanded Security Maintenance for Applications is enabled.
0 updates can be applied immediately.
Last login: Wed Nov 15 15:23:03 2023 from 10.100.42.27
{"ok":true,"result":{"message_id":141,"from":{"id":6215--8963,"is_bot":true,"first_name":"simplism-ssh-alarm","username":"simplism_ssh_alarm_bot"},"chat":{"id":55450--869,"first_name":"SIMPLISM","type":"private"},"date":1700031119,"text":"simplism-macmini(10.100.42.13) ssh session open! (user=simplism, ip=xx.xx.xx.xx, datetime=2023-11-15 (\uc218) 15:51:58)","entities":[{"offset":0,"length":17,"type":"bold"},{"offset":17,"length":12,"type":"url"},{"offset":17,"length":12,"type":"bold"},{"offset":29,"length":1,"type":"bold"},{"offset":68,"length":12,"type":"url"}]}}simplism@simplism-macmini:~$
Telegram 메시지를 발송하고 나온 결과 값이 출력되고, Telegram 메시지가 발송되기 전까지는 프롬프트가 입력되지 않는 문제가 있다.
B. 문제점 해결
두 가지의 문제점을 해결하기 위해서 호출하는 스크립트를 Background로 실행하고, curl로 호출한 결과를 숨기는 조치를 하려고 한다.
$ vi ~/.bashrc
다시 .bashrc 파일을 열어서 아래와 같이 변경한다.
(~/.telegram/LoginAlarm.sh&) > /dev/null 2>&1
위와 같이 LoginAlarm.sh -> LoginAlarm.sh&로 변경하면 해당 스크립트는 Background로 호출되니 curl 명령어가 실행이 완료되지 않더라도 즉시 프롬프트가 사용가능한 상태가 된다.
그리고 > /dev/null 2>&1 을 추가해서 화면에 curl 결과값이 출력되지 않도록 한다.
C. 마치면서..
내용이 너무 길어서 4편으로 나눠서 포스팅하는 것인데... 마지막 포스트는 생각보다 짧게 마무리된 것 같다.
사실 설명을 더 붙이면 좋을 것 같긴하지만 너무 사설이 길어지는 것 같아서 이 정도로 마무리하려고 한다.
LoginAlarm.sh에는 아주 핵심적인 내용만 포함된 것이라서 로그파일을 저장하거나 아니면 출력내용을 추가한다거나 하는 것은 사용하려는 사람의 취향에 맞추면 될 것 같다.