连接服务器的脚本

对于记不住的服务器密码且不愿用三方工具俺简单写了个脚本(检测下最近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
相关推荐
szxinmai主板定制专家16 分钟前
【飞腾AI加固服务器】全国产化飞腾+昇腾310+PCIe Switch的AI大模型服务器解决方案
运维·服务器·arm开发·人工智能·fpga开发
深科文库19 分钟前
构建 MCP 服务器:第 3 部分 — 添加提示
服务器·python·chatgpt·langchain·prompt·aigc·agi
点击查询19 分钟前
怎么把自己电脑设置成服务器?
运维·服务器
阿里云大数据AI技术33 分钟前
ES Serverless 8.17王牌发布:向量检索「火力全开」,智能扩缩「秒级响应」!
大数据·运维·serverless
wanhengidc36 分钟前
服务器中日志分析的作用都有哪些
运维·服务器
Mikhail_G1 小时前
Python应用变量与数据类型
大数据·运维·开发语言·python·数据分析
曹瑞曹瑞1 小时前
VMware导入vmdk文件
linux·运维·服务器
十年磨一剑~2 小时前
centos查看开启关闭防火墙状态
linux·运维·centos
无效的名字2 小时前
向日葵远程控制debian无法进入控制画面的解决方法
运维·debian
行云流水剑2 小时前
【学习记录】在 Ubuntu 中将新硬盘挂载到 /home 目录的完整指南
服务器·学习·ubuntu