连接服务器的脚本

对于记不住的服务器密码且不愿用三方工具俺简单写了个脚本(检测下最近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
相关推荐
ChinaRainbowSea1 分钟前
Linux: Centos7 Cannot find a valid baseurl for repo: base/7/x86_64 解决方案
java·linux·运维·服务器·docker·架构
snpgroupcn2 小时前
ECC升级到S/4 HANA的功能差异 物料、采购、库存管理对比指南
运维·安全·数据库架构
晨曦启明7112 小时前
Linux云计算SRE-第十八周
linux·运维·云计算
暴躁的小胡!!!3 小时前
Linux权限维持之vim python 扩展后门(五)
linux·运维·服务器·网络·安全
优维科技EasyOps3 小时前
优维眼中的Manus:AI工程化思维重构Agent的运维端启示
运维·人工智能·重构
圣圣不爱学习3 小时前
Calico-BGP FullMesh模式与RR模式 Day04
运维·网络
zhgjx-dengkewen3 小时前
华为eNSP:实验 OSPF单区域
运维·网络·华为·智能路由器
爱敲代码的边芙3 小时前
Golang:实时消息交互系统
运维·服务器
北冥有鱼被烹4 小时前
【微知】Centos如何迁移到Anolis系统的失败记录?(yum -y install centos2anolis、centos2anolis.py)
linux·服务器·centos
babytiger4 小时前
windows 平台如何点击网页上的url ,会打开远程桌面连接服务器
linux·运维·服务器·windows