目的是当VPS在SSH登录时,通过curl推送信息。
前言
具体实现参考vps-登录推送。脚本依赖于curl
、jq
。
如果想用微信通知,可以参考通过微信公众测试号推送消息,通过多个http请求来达到目的。
有机会的话,可以使用cat
命令来替代echo
多行输出,举例如下:
cat <<EOFFFFFF > tg.sh
localip=\$(curl -s ip.sb -4)
user=\$(whoami)
logintime=\$(TZ=UTC-8 date "+%Y-%m-%d %H:%M:%S")
loginip=${localip}
loginfrom=\$(curl -s https://api.ip.sb/geoip/${loginip} | jq -r .asn_organization)
...
EOFFFFFF
另外,bash tg.sh &
一行需要完善,不然总会有一行输出,不太雅观。
建议改成(bash tg.sh > /dev/null 2>&1 &)
备忘录
防止源站失联,在这里贴下脚本
#!/bin/bash
# /etc/profile.d/login-alarm.sh
#填入 bot 的 token
token=
#填自己的id
id=
localip=$(who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g')
echo 'localip=$(curl -s ip.sb -4)' > tg.sh
echo 'user=$(whoami)' >> tg.sh
echo 'logintime=$(TZ=UTC-8 date "+%Y-%m-%d %H:%M:%S")' >> tg.sh
echo 'loginip='${localip} >> tg.sh
echo 'loginfrom=$(curl -s https://api.ip.sb/geoip/${loginip} | jq -r .asn_organization)' >> tg.sh
## 下面这里需要自己实现
echo 'curl -s "https://api.xxx.org/bot'${token}'/sendMessage?chat_id='${id}'" --data-binary "&text=NewLogin:%0AVPS:${user}@${localip}%0ATime: ${logintime}%0ALogin from:%0A${loginip}%0A${loginfrom}" > /dev/null && rm tg.sh' >> tg.sh
(bash tg.sh > /dev/null 2>&1 &)