mac下快捷登录线上服务器脚本


## 快捷登录线上服务器脚本
> 背景环境:原先故障报警,登录故障机查看时非常不讨好的事情,密码强度高,禁止root登录都是只能复制粘贴密码再登录,非常繁琐,索性切换到mac下之后这个登录脚本,直接go <ip最后一段即可>直接登录,省心多了,原先只能复制粘贴密码方式进行登录故障机检查报警

===
> 所以借鉴别人脚本改了如下,登录线上服务器可以直接利用:# go 210就登录192.168.199.210,root的身份,避免了复制粘贴密码带来的时间损耗,前提你得将脚本所在路径加入到环境变量中才能这样使用

```
#!/bin/sh
#filename: go

if [ $# -eq 0 ]
then
echo "Usage: $0 [last_segment_in_ip]"
exit 1
fi

segment=$1
suffix=192.168.199

#if [ -n "$pass" ]; then
ip="$suffix.$segment"
/Users/mingmings/auto_login/login $ip
```

调用脚本如下
```
#!/usr/bin/expect -f
#filename: login
trap {
set rows [stty rows]
set cols [stty columns]
stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH

set timeout 20
set ip [lindex $argv 0]

#set password [exec cat $passbook | grep -v "^#" | grep -w "$ip" | awk {{print $NF}}]
#set root_password [exec cat $root_passbook | grep -v "^#" | grep -w "$ip" | awk {{print $NF}}]

spawn ssh -p xxxx superadmin@$ip

expect {
"*yes/no" { send "yes\r"; exp_continue}
"*password:" {
# send "$password\r";
send "你懂的\r";
send "su -l\r";
exp_continue;
}
"Password:" {
# send "$root_password\r";
send "你懂的\r";
}
"密码 " {
send "你懂的\r";
exp_continue;
}
"su: incorrect password" {
send "exit\r";
}
}
interact
```

相关内容