SSH监控

创建/etc/ssh/sshrc文件 写入以命令
echo "===== 系统状态 ====="  
uptime  
free -h  
每次登录会显示

SSH监控_第1张图片

如果在sshrc文件加入以下脚本每次登录就是执行这个脚本
# cat /etc/ssh/sshrc          
echo "===== 系统状态 ====="  
uptime  
free -h  
/usr/local/bin/monit.sh
以下脚本内容
#!/bin/bash

# 获取登录信息
USER_LOGIN="$USER"
IP_LOGIN="${SSH_CLIENT%% *}"  # 提取客户端IP‌:ml-citation{ref="1" data="citationList"}
#IP=$(who -m | awk '{print $NF}' | sed 's/[()]//g')
TIME_LOGIN=$(date "+%Y-%m-%d %H:%M:%S")
HOSTNAME=$(hostname)

# 邮件收件人及主题
MAIL_TO="[email protected]"
SUBJECT="[SSH告警] 用户登录 - $HOSTNAME"
BODY="
时间: $TIME_LOGIN
用户: $USER_LOGIN
IP地址: $IP_LOGIN
主机名: $HOSTNAME
"
# 发送邮件
#echo -e "$BODY" | mail -s "$SUBJECT" "$MAIL_TO"
echo -e "$BODY" > /tmp/1.txt
echo "[$TIME_LOGIN] SSH登录: 用户 $USER_LOGIN, IP $IP_LOGIN" >> /var/log/ssh_monitor.log

shell2

!/bin/bash  
# 方法1:通过SSH_CLIENT变量  
if [ -n "$SSH_CLIENT" ]; then  
    IP=${SSH_CLIENT%% *}  
    echo "SSH登录IP: $IP"  
else  
    # 方法2:通过who命令  
    IP=$(who -m | awk '{print $NF}' | sed 's/[()]//g')  
    echo "当前登录IP: $IP"  
fi  

你可能感兴趣的:(system,Shell,ssh,运维)