系统管理员任务可以在 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 脚本杀死所有用户并排除少数用户会话。