我想检查其他人是否登录主机。我有以下tcsh脚本。 我想过滤其他用户使用的主机。 我使用的是tcsh 。
host_list="/home/campus27/zwang10/bin/hostlist"
HOSTS=`cat $host_list`
cp /dev/null hostlist_available
for line in $HOSTS
do
ssh -o ConnectTimeout=1s $line true &>/dev/null
RESULT=$?
if [ $RESULT -eq 0 ]
then
echo $line
echo $line >> hostlist_available
fi
done
上述脚本会将所有可用的主机名写入hostlist_available
。
但是其他一些人登录可用的主机。我想删除那些主机(除了我)。我的用户名是zwang10
。
答案 0 :(得分:1)
将此插入您的then和fi之间。请原谅,如果我的语法不是
for USER in ssh -f $line "w" | tail -n+3 | awk '{print $1}'
do
# if user is empty OR user is me then
if [[ $USER =~ ^\s*$ ]] || [[ "$USER." == "zwang10." ]]; then
echo $line
echo $line >> hostlist_available
else
echo "$line occupied by $USER"
fi
done
我认为这大致是你想要的。