内容简介:一般情况下,公司所有的服务器都在内网,公网访问、管理服务器都要先通过登录一台跳板机,然后再由跳板机登录到相应的服务器进行操作,跳板机与服务器的连接都是内网地址通常情况下,我们都是通过两次ssh,第一次本地机器登录跳板机,第二次在跳板机登录指定机器,需要输入两次密码,容易输错后端码农每天要无数次登录各种机器,如果能通过工具自动化,每次能省半分钟,并且心情会愉悦很多,下面来进行实战
痛点
一般情况下,公司所有的服务器都在内网,公网访问、管理服务器都要先通过登录一台跳板机,然后再由跳板机登录到相应的服务器进行操作,跳板机与服务器的连接都是内网地址
通常情况下,我们都是通过两次ssh,第一次本地机器登录跳板机,第二次在跳板机登录指定机器,需要输入两次密码,容易输错
后端 码农 每天要无数次登录各种机器,如果能通过 工具 自动化,每次能省半分钟,并且心情会愉悦很多,下面来进行实战
expect 脚本
#!/usr/bin/expect set host [lindex $argv 0] # 设置一个变量,传入的参数,0 表示第一个参数,同时也为了复用,毕竟不只是管理一台服务器 set TERMSERV 跳板机IP set USER 跳板机用户名 set PASSWORD 跳板机密码 set UATUN 内网服务器用户名 set UATPWD 内网服务器密码 # 登录跳板机 spawn ssh -l $USER $TERMSERV # expect是expect环境的一个内部命令,判断上一个指令输入之后的得到输出结果是否包含""双引号里的字符串,比如后面的"*password:*",表示上一个输出结果包含password:*通配符表示前后可以是任意字符 #类似于编程中的 switch语句,exp_continue相当于 continue expect { "yes/no" {send "yes\r";exp_continue;} "*password:*" { send "$PASSWORD\r" } } # 登录内网 expect "*$USER@*" {send "ssh -l $UATUN $host\r"} expect { "yes/no" {send "yes\r";exp_continue;} "*password:*" { send "$UATPWD\r" } } interact # 执行完成后保持交互状态,把控制权交给控制台
- 将脚本保存成一个文件,例如 server.exp
- 可执行权限,chmod +x server.exp
配置 iTerm2
Profiles -> Open Profiles -> Edit Profiles
send text at start: [expect脚本路径] [参数0] [参数1] ... 以空格分割
大功告成
到此为止,已完成所有准备工作,此时再进入指定机器,只需要三步
- 打开 iTerm2
- 快捷键 Command+o 打开 Profiles 面板
- 选中某个 profile 单击,就直接进入目标机器了,开始挥洒方遒吧!
温馨提示
- 之所以在expect 脚本中设置了一个参数,是为了复用,要进入别的机器,复用同一个 .exp脚本,添加一个新的 profile 即可
- exp 脚本可以多个参数,达到更多场景下复用,具体又童鞋自己考量
- 也可以把
exp脚本
当做sh脚本
一样执行,比如./test-server.exp in-test-server-goapi-1
,这样可以不必要配置 profile
GitHub
- 源码传送门
- 各种数据结构及算法实现, LeetCode解题思路及答案
- 大厂面试题汇总及答案解析
本文为原创文章,转载注明出处,欢迎扫码关注公众号 楼兰
或者网站 https://lovecoding.club ,第一时间看后续精彩文章,觉得好的话,顺手分享到朋友圈吧,感谢支持。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 树莓派折腾实现跳板机
- 搭建Ubuntu跳板机的Jupyter环境
- beego实现用户未登录跳转到登录页面
- Django实现小程序的登录验证功能,并维护登录态
- 【Python3爬虫】破解时光网登录加密参数并实现模拟登录
- ybg-spring-fast 添加码云第三方登录,微信第三方登录
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入理解C++11
Michael Wong、IBM XL编译器中国开发团队 / 机械工业出版社 / 2013-6 / 69.00元
《深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。 《深入理解C++11:C++11新特性解析与应用》一共8章:第1章从设计......一起来看看 《深入理解C++11》 这本书的介绍吧!