脚本实现批量关闭闲置用户的VNC端口

VNC是一个利用端口号允许用户远程登录服务器的客户端程序

开启VNC登录端口的用户会在服务器后台运行用户的主控程序Xvnc的进程

但开启后用户长期不登录进程会一直驻留在后台,因此,写了个脚本批量关闭闲置的Xvnc进程:

一、查看现运行的Xvnc进程

ps ef |grep Xvnc

查看目前在线用户

who

关闭不在线用户的Xvnc进程

vncserver -kill :$端口号

当然,执行该命令前必须切换至开启该端口号的用户下

Talk is cheap:

#!/bin/bash

## To kill the vnc process not using...

ps -ef|grep Xvnc|awk '{print $1 $9}' > userport_map

while read LINE
do
 USER=$(echo $LINE | awk -F ':' '{print $1}')  #取用户名赋予USER变量
 PORT=$(echo $LINE | awk -F ':' '{print $2}')	#取相应的端口号赋予PORT变量
 w|grep $USER
 case $? in #通过上条命令执行结果的返回值来判断该用户是否在线:0——在线;1——不在线
  1)
	su $USER -c "vncserver -kill :$PORT"  #不在线的话,切换至该用户并执行vncserver -kill 命令
	echo "killing $USER \'s Xvnc process"
 esac
	 
done < userport_map

rm userport_map
发布了24 篇原创文章 · 获赞 3 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/saeba5566/article/details/104843473