SHELL如何区分serial console login还是telnet login?
同题!Thanks!
------解决方案--------------------下面的的脚本可以参考,对不同的系统需要稍稍修改:
#!/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登录吧.....
------解决方案--------------------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