批量踢出离线Linux用户脚本

今天折腾VPS的时候发现有一台装着CentOS 7的VPS使用uptime命令时竟然提示已登录了90多个用户。w命令查看一下发现都是我一直使用的账户,登录IP也与本机的相符,前几个已登陆用户的空闲时间已经好几十天了,猜测可能是断开SSH的时候没有正常退出造成的。

Linux下踢掉用户使用 pkill -kill -t pts/* 即可,但是90多个待踢出的用户显然不应该手动操作,于是写了个小脚本,用遍历who命令第二列的结果结合上述命令kill掉所有用户,运行后重新登录SSH即可。

1
2
3
4
5
6
7
#! /bin/bash

for user_pts in $(who|awk '{print $2}')
do
pkill -kill -t $user_pts
echo $user_pts 'has been killed'
done

本文由 Eason Yang 创作,采用署名 4.0 国际(CC BY 4.0)创作共享协议进行许可,详细声明

Buy me a cup of coffee.