您好,登录后才能下订单哦!
这期内容当中小编将会给大家带来有关如何用mac电脑自动登录服务器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
expect 是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。它的自动交互流程如下:
spawn
启动指定进程 ---> expect
获取指定关键字 ---> send
向指定程序发送指定字符 ---> 执行完成退出
接下来我们将利用 expect 来实现 ssh 自动登录。首先新建一个文件 /usr/local/bin/iterm2Login.sh
,内容如下:
#!/usr/bin/expect set timeout 30 set host [lindex $argv 0] # 这一行是设置一个变量的意思,变量名随便起,尽量有意义,后面表示的是传入的参数,0 表示第一个参数,后面会用到。 set port [lindex $argv 1] set user [lindex $argv 2] set pswd [lindex $argv 3] spawn ssh -p $port $user@$host # spawn 是 expect 环境的内部命令,它主要的功能是给 ssh 运行进程加个壳,用来传递交互指令。 expect { "(yes/no)?" {send "yes\n";exp_continue;} -re "(p|P)ass(word|wd):" {send "$pswd\n"} } # expect 也是 expect 环境的一个内部命令,用来判断上一个指令输入之后的得到输出结果是否包含 "" 双引号里的字符串,-re 表示通过正则来匹配。 # 如果是第一次登录,会出现 "yes/no" 的字符串,就发送(send)指令 "yes\r",然后继续(exp_continue)。 interact # interact:执行完成后保持交互状态,把控制权交给控制台。
argv 0
, argv 1
, argv 2
, argv 3
三个参数依次为 ip、端口号、用户名、密码。
赋予脚本执行权限:
$ sudo chmod +x /usr/local/bin/iterm2Login.sh
将 Profile 中的 Command 部分替换成通过上面的脚本来登录:
export LC_CTYPE=en_US;/usr/local/bin/iterm2Login.sh 172.16.2.84 22 root "1"
添加正则表达式
Regular expression: Are you sure you want to continue connecting (yes/no)? Action: Send Text Parameters: yes\r Instant: checked
然后就可以自动登录服务器了
服务器和 mac电脑上都需要安装 lrzsz
软件包
#centos && RHEL yum -y install lrzsz # Ubuntu && Debian apt-get install lrzsz # Mac os brew install lrzsz
在全球最大同性交友网站 Github
上,已经有人共享了一个叫 “ZModem integration for iTerm 2” 的项目。我们只需下载其相应脚本,并进行简单配置就可以很容易的在 iTerm2
上实现对 Zmodem
的支持。
项目地址:https://github.com/kuoruan/iterm2-zmodem[2]
下载并安装脚本
$ wget -qO /usr/local/bin/iterm2-zmodem.sh https://github.com/kuoruan/iterm2-zmodem/raw/master/iterm2-zmodem.sh $ chmod +x /usr/local/bin/iterm2-zmodem.sh
配置 iTerm2 上的触发器
打开 iTerm2
,点击 Preferences
→ Profiles
选择指定的 Profile
。然后继续选择 Advanced
→ Triggers
,并点击 Edit
添加两个触发器。
按如下内容添加两个触发器,首先增加 sz
指令的触发器:
Regular expression: rz waiting to receive.\*\*B0100 Action: Run Silent Coprocess Parameters: /usr/local/bin/iterm2-zmodem.sh send Instant: checked
其次增加 rz
指令的触发器:
Regular expression: \*\*B00000000000000 Action: Run Silent Coprocess Parameters: /usr/local/bin/iterm2-zmodem.sh recv Instant: checked
成功增加完成后的效果,类似下图:
配置这两个触发器的作用就是让 iTerm2
根据终端上显示的字符通过指定的触发器调用相应的发送和接收脚本。
上述就是小编为大家分享的如何用mac电脑自动登录服务器了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。