当前位置: 技术问答>linux和unix
SHELL如何区分serial console login还是telnet login?
来源: 互联网 发布时间:2016-02-04
本文导语: 同题!Thanks! | name="pts/`basename `tty``" echo $name flag=`who|grep $name|awk '{print $6}'` echo $flag if [ $flag = "(:0.0)" ] then echo "loca" else echo "other:telnet or ssh ...." fi | 下面的的...
同题!Thanks!
|
name="pts/`basename `tty``"
echo $name
flag=`who|grep $name|awk '{print $6}'`
echo $flag
if [ $flag = "(:0.0)" ]
then
echo "loca"
else echo "other:telnet or ssh ...."
fi
echo $name
flag=`who|grep $name|awk '{print $6}'`
echo $flag
if [ $flag = "(:0.0)" ]
then
echo "loca"
else echo "other:telnet or ssh ...."
fi
|
下面的的脚本可以参考,对不同的系统需要稍稍修改:
#!/bin/sh
_tty=`tty`
case ${_tty} in
*[Tt][Tt][Yy][Ss]*)
echo "serial console"
;;
*[Tt][Tt][Yy][Pp]* | *[Pp][Tt][Ss]*)
echo "telnet login"
;;
*[Tt][Tt][Yy][Vv]* | console)
echo "console"
;;
*)
;;
esac
#!/bin/sh
_tty=`tty`
case ${_tty} in
*[Tt][Tt][Yy][Ss]*)
echo "serial console"
;;
*[Tt][Tt][Yy][Pp]* | *[Pp][Tt][Ss]*)
echo "telnet login"
;;
*[Tt][Tt][Yy][Vv]* | console)
echo "console"
;;
*)
;;
esac
|
1楼好像是通过/dev/pts来判断的
不过/dev/pts是远程登陆(telnet,ssh等)后创建的控制台设备文件所在的目录。印象中/dev/pts是动态生成的,所以对功能性有点怀疑....
至少不能分辨是telnet还是ssh登录吧.....
不过/dev/pts是远程登陆(telnet,ssh等)后创建的控制台设备文件所在的目录。印象中/dev/pts是动态生成的,所以对功能性有点怀疑....
至少不能分辨是telnet还是ssh登录吧.....