首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux查看ssh连接时长

在Linux系统中,可以通过多种方式查看SSH连接的时长。以下是一些常用的方法:

方法一:使用who命令

who命令可以显示当前登录的用户及其相关信息,包括登录时间。

代码语言:txt
复制
who

输出示例:

代码语言:txt
复制
user     pts/0        2023-10-01 10:00 (:0)
user     pts/1        2023-10-01 11:00 (:0)

通过查看输出中的时间,可以手动计算连接的时长。

方法二:使用w命令

w命令提供了更详细的当前登录用户信息,包括登录时间和空闲时间。

代码语言:txt
复制
w

输出示例:

代码语言:txt
复制
 10:15:23 up 1 day,  3:20,  2 users,  load average: 0.10, 0.05, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user     pts/0    :0               10:00    1:23m  0.10s  0.03s -bash
user     pts/1    :0               11:00   10:15  0.15s  0.10s -bash

通过查看IDLE列,可以了解每个连接的空闲时间。

方法三:使用last命令

last命令可以显示用户的登录记录,包括登录时间和退出时间。

代码语言:txt
复制
last

输出示例:

代码语言:txt
复制
user     pts/0        :0               Mon Oct  1 10:00   still logged in
user     pts/1        :0               Mon Oct  1 11:00   still logged in

通过查看输出中的时间,可以了解每个连接的开始时间和当前状态(是否仍在连接中)。

方法四:使用journalctl命令

如果系统启用了systemd日志,可以使用journalctl命令查看SSH连接的详细日志信息。

代码语言:txt
复制
journalctl _SYSTEMD_UNIT=sshd.service

输出示例:

代码语言:txt
复制
-- Logs begin Oct 01 10:00:00 hostname, end Oct 01 12:00:00 hostname. --
Oct 01 10:00:00 hostname sshd[1234]: Accepted password for user from 192.168.1.1 port 54321 ssh2
Oct 01 10:00:00 hostname sshd[1234]: pam_unix(sshd:session): session opened for user user by (uid=0)

通过查看日志中的时间戳,可以计算出连接的时长。

方法五:使用自定义脚本

可以编写一个简单的脚本来定期记录SSH连接的时间,并计算连接的时长。

代码语言:txt
复制
#!/bin/bash

LOG_FILE="/var/log/ssh_connections.log"

# 记录当前SSH连接
who | awk '{print $1, $2, $3}' >> $LOG_FILE

# 计算连接时长
while read -r line; do
  user=$(echo $line | awk '{print $1}')
  tty=$(echo $line | awk '{print $2}')
  login_time=$(echo $line | awk '{print $3}')
  current_time=$(date +"%Y-%m-%d %H:%M")
  duration=$(($(date -d "$current_time" +%s) - $(date -d "$login_time" +%s)))
  echo "User: $user, TTY: $tty, Login Time: $login_time, Duration: $duration seconds" >> /var/log/ssh_connection_durations.log
done < $LOG_FILE

将上述脚本保存为ssh_duration.sh,并使用cron定期执行,可以记录每个SSH连接的时长。

总结

以上方法可以帮助你在Linux系统中查看SSH连接的时长。根据具体需求和环境,可以选择适合的方法进行监控和记录。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券