1、iterm快速登录开发机
1.item2 - profiles介绍
item2的功能之一,本文主要使用其的Send text at start功能,即在打开终端时输入相关指令
2.expect介绍
一种用来实现交互的编程语言,这里的交互可类比为登陆机器时输入密码等行为。他可以根据模拟的输出进行相关的输入。该功能mac安装可参考brew install expexct。
3.编写相关程序
这次的目的是让他自行登陆堡垒机并输入密码,待手机端确认过登陆后再输入登陆开发机和输入密码相关指令。同时还可以登陆其他的开发机。结束后保存在任意路径。
#!/usr/bin/expect
#expect 获取值的方式是将所有值都放进argv数组中,在程序中逐次取出
set HOST [lindex $argv 0]
set PASSWORD [lindex $argv 1]
#程序开始时执行命令,登陆堡垒机。xxxxxx为登陆名
spawn ssh liweiya@relay.baidu-int.com
#开始根据终端界面输出的内容进行匹配
expect {
"user's" {
#输入密码xxxxxxx并进行回车操作(\n)
send "xxxxxxx\n"
#进行向下匹配,如果没有这句那程序执行完上一句就结束了
exp_continue
}
"*ssl" {
#发送登陆相关开发机请求,host为机器名,并进行回车操作(\r)
send "ssh --silent $HOST\r"
#如果在执行expect命令时带了密码值,例如登陆自己的开发机,则在这一部需要输入密码
if { "$PASSWORD"!="" } {
#在这里等到内容中最后字符为password,则将密码输入并模拟回车
expect "*password:" {send "$PASSWORD\r"}
}
}
}
#结束
interact
exit
4.启动该脚本: 参考命令
# xxxx和yyyy为主机名和密码,而登陆不需要密码的机器只需要输入xxxx即可。
expect /Users/liqianpeng/relay_expect xxxx yyyy
# 注:实现该功能同时可以尝试开启堡垒机自动登陆功能,相关操作可以内搜
5,配合item2
在上文提到的Send text at start中输入第四步的命令,即可实现打开终端时自动登陆相关开发机功能。
2、中文乱码相关
1、解决vim中编辑中文时出现中文乱码的问题
在个人目录编辑配置文件
# 打开vimrc
vim ~/.vimrc
# 加入一下配置
set nu
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
2、Linux系统显示中文乱码
vim ~/.bash_profile
export LANG=zh_CN.GB18030
export LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN
export LC_ALL=POSIX # 系统语言是中文,但英文乱码添加此项
3、linux开发机传输文件
1)nc命令
# 单个文件传输
接收端 : port请选用(8000~8999,公司内和IDC机房开放端口)
nc -l 9990 >file
发送端:
nc 10.81.90.155 9990 < file
nc 10.9.228.59 9990 < file
# 多文件可配合压缩命令
# 接收端,文件保存在当前目录下
nc -l 9990 | tar xfvz -
# 发送端,把data目录打包传输
tar cfhz - conf | nc 10.81.90.155 9990
tar cfhz - conf | nc 10.9.228.59 9990
2)SimpleHTTPServer命令
开发机 → mac:
端口:8000-9000
python -m SimpleHTTPServer 8012(到需要下载文件的目录下执行)
MAC浏览器访问:10.81.90.155:8012
3)sz rz命令
因为自动登陆开发机会用到expect命令,与szrz冲突,导致sz/rz失效,可以直接用原来的ssh id@ip方法登陆开发机使szrz生效,或者在原来的relay_expect.sh脚本外面在包装一层sh脚本,就可以使用sz,rz命令了。
使用方法:
开发机→mac:sz filename
mac→开发机:rz