- 论坛徽章:
- 0
|
本帖最后由 jils2013 于 2012-07-18 11:49 编辑
公司规定登录服务器需要一个中间机器跳转 先选择服务器,在选择用户:- ssh 000001@10.0.1.254 <<这个是中间服务器
- Password:
- ....
- 1: 10.0.1.2 server2
- 2: 10.0.1.3 server3
- 3: 10.0.1.4 server4
- Select server: 1 <<选择服务器
- 1: user
- 2: root
- Select account: 2 <<选择登录用户
- ...
- [root@localhost ~]# hostname <<登录成功了
- localhost
- [root@localhost ~]# exit
- Session closed, press ENTER to start over again or q,Q to exit.Q <<退出的时候需要按下Q,按别的会继续给你选服务器
复制代码 这边写了个expect的小脚本new.sh:- #!/usr/bin/expect
- set servn [lindex $argv 0]
- set host 10.0.1.254
- set user 000001
- set passwd 123456
- spawn ssh $user@$host
- expect Password:
- send "$passwd\r"
- expect "Select server:"
- send "$servn\r"
- expect "Select account:"
- send "2\r"
- expect "~]#"
- send "hostname\r"
- expect "~]#"
- #send "ifconfig\r"
- send "sleep 10\r"
- expect "~]#"
- send "exit\r"
- expect "Session closed, press ENTER to start over again or q,Q to exit."
- send "Q\r"
- expect eof
复制代码 ./new.sh 1 单独执行没有问题- nohup ./new.sh 3 >c.log &
- nohup ./new.sh 2 >b.log &
- nohup ./new.sh 1 >a.log &
复制代码 这样执行就不行了;错误日志a.log 里面的东西,貌似是另一个执行的东西和这个串在一起了,这样的怎么搞?- spawn ssh 000001@10.0.1.254
- Password:
- ....
- 1: 10.0.1.2 server2
- 2: 10.0.1.3 server3
- 3: 10.0.1.4 server4
- Select server: ostname
- 1: 10.0.1.2 server2
- 2: 10.0.1.3 server3
- 3: 10.0.1.4 server4
- Select server: sleep 10
- 1: 10.0.1.2 server2
- 2: 10.0.1.3 server3
- 3: 10.0.1.4 server4
- Select server: exit
- 1: 10.0.1.2 server2
- 2: 10.0.1.3 server3
- 3: 10.0.1.4 server4
- Select server: Q
- Connection to 10.0.1.254 closed.
复制代码 |
|