Господа, всем доброго настроения.
Не пойму как решить задачу. Гугление, к сожалению, не поспособствовало, за сим прошу помощи у коллективного сознательного.
Имеется скрипт-уведомлялка, который говорит Telegram-боту отправить сообщение определённому абоненту при авторизации на сервере по SSH.
Лежит скрипт по пути /etc/profile.d/script.sh
, выглядит следующим образом:
#!/bin/bash
BOT_TOKEN=token
CHAT_ID=id
USER_IP=$(echo $SSH_CLIENT | awk '{ print $1}')
BOT_MESSAGE="🔐 $(hostname): $(whoami) is authorized from $USER_IP"
curl -X POST -d "text=$BOT_MESSAGE" 'https://api.telegram.org/bot'$BOT_TOKEN'/sendMessage?chat_id='$CHAT_ID'' &>/dev/null
Проблема заключается в том, что работает он только при подключении по, непосредственно, интерактивному SSH. Если подключиться через условный WinSCP - уведомления не будет, как и если просто скопировать файл на сервер через scp.
Интуиция подсказывает, что заковыка связана с понятиями «интерактивности/неинтерактивности» устанавливаемой сессии, и, соответственно, в местоположении скрипта, но вот знаний, чтобы понять, как описанную проблему исправить – не хватает.
Подскажите, пожалуйста, что именно нужно сделать, чтобы получать желаемое уведомление при любого типа подключении на условный «22 порт», вне зависимости от того, было ли это SSH или SFTP?