Shell 脚本杀死所有用户活动会话?

系统管理员任务可以在 Linux 中以各种方式自动化,它大大减少了人力并节省了可用于其他生产任务的合理时间。

shell 脚本是自动化的方法之一。

对于某个场景,您希望运行每周作业或 EOD 作业来填充一些数据以用于报告目的。为此,您必须在开始工作之前终止当前正在访问系统上的应用程序的所有 ssh 会话。

下面的 shell 脚本将通过获取用户会话的 tty 值并使用pkill命令杀死它们来删除所有用户的活动会话。

#vim /opt/script/kill-user-sessions.sh

#!/bin/bash
usession=$(w | awk '{if (NR!=1) {print $2 }}' | tail -n +2)
for i in $usession
do
pkill -9 -t $i
done

“kill-user-sessions.sh”文件设置可执行权限。

# chmod +x /opt/script/kill-user-sessions.sh

最后,添加一个cronjob来自动化这个每天凌晨 3 点运行的脚本。

# crontab -e0 3 * * * /bin/bash /opt/script/kill-user-sessions.sh


如何排除系统上的少数用户

如果要排除系统中的任何用户,请使用以下脚本。

在这个例子中,“root”“ansible”用户被作为排除的参考。


#vim  /opt/script/kill-user-sessions-1.sh

#!/bin/bash
usession=$(w | grep -v "root|ansible" | awk '{if (NR!=1) {print $2 }}' | tail -n +2)
for i in $usession
do
pkill -9 -t $i
done

“kill-user-sessions-1.sh”文件设置可执行权限。

# chmod +x /opt/script/kill-user-sessions-1.sh

最后,添加一个cronjob来自动化这个每天凌晨 3 点运行的脚本。

# crontab -e0 3 * * * /bin/bash /opt/script/kill-user-sessions-1.sh

总结:本文简要介绍了使用 shell 脚本杀死所有用户并排除少数用户会话。

标签: shell

作者头像
南宫俊逸创始人

君子好学,自强不息~

上一篇:阿里云 2021 年 618 年中钜惠活动云上GO (云服务器汇总价格表)
下一篇:apt 和 apt-get 命令有什么区别?

发表评论

阿里云2021年 618 年中钜惠活动