连接服务器的脚本

对于记不住的服务器密码且不愿用三方工具俺简单写了个脚本(检测下最近shell脚本的学习效果咋样)

expect 是处理交互的一种脚本语言,spawn启动指定进程 -> expect获取指定关键字 -> send想指定进程发送指定指令 -> 执行完成后退出

  • spawn 命令,启动新的交互进程, 后面跟命令或者指定程序
  • expect 命令,从进程中接收信息, 如果匹配成功, 就执行expect后的动作
  • send 命令,向进程发送字符串
  • interact 命令,允许人为干预交互
  • set 设置变量的值
  • puts 输出变量的值

1、安装该工具

linux

shell 复制代码
yum install expect

mac

shell 复制代码
 brew install expect

2、脚本内容

bash 复制代码
 #!/usr/bin/expect
 ​
 set web1 服务器1ip
 set web2 服务器2ip
 ​
 puts "服务器列表"
 puts "1. 服务器1备注名称"
 puts "2. 服务器2备注名称"
 ​
 set timeout -1
 expect_user -re "(.*)\n"
 ​
 set num $expect_out(1,string)
 ​
 switch -exact -- $num {
     1 {
        spawn ssh root@$web1
        expect "password:"
        send "服务器1密码\r"
        interact
    }
     2 {
        spawn ssh root@$web2
        expect "password:"
        send "服务器2密码\r"
        interact
    }
    default {
        puts "输入序号错误"
    }
 }

使用

bash 复制代码
gwh@GWdeMacBook-Pro [19:16:08] [~/Desktop]
-> % expect jumpServer.exp
相关推荐
QYR-分析2 小时前
注塑机机械手自动化装备行业发展研判:存量升级催生增量红利,2032 年市场规模逼近 9 亿美元
运维·自动化
我命由我123452 小时前
匈牙利命名法
java·服务器·后端·学习·java-ee·kotlin·学习方法
小田的博客2 小时前
SAP MM 供应商银行主数据更新报错!message R1228!
android·java·服务器
牢姐与蒯3 小时前
Linux基本指令及知识点(二)
linux·运维·服务器
ᥬ 小月亮3 小时前
SonarQube使用教程(Docker安装)
运维·docker·容器
去伪存真20253 小时前
数字样机、态势推演与3D汇报场景下的平台选型对比
运维·服务器
自动化测试行业观察3 小时前
从“自动化”到“智能化”:TestMan AI测试平台引领软件测试范式转移
运维·自动化测试·人工智能·测试工具·自动化·app测试·移动应用测试
xiaoxiangsiyan3 小时前
运维之前端反调试学习
运维·前端·学习·状态模式
深圳市恒星物联科技有限公司4 小时前
破解复杂水务监测难题:投入式压力液位计如何实现“零中断”长效运维?
运维·物联网·智慧城市
RPA机器人就用八爪鱼5 小时前
八爪鱼RPA客服质检自动化:会话记录采集与关键词分析方案
运维·自动化·rpa