连接服务器的脚本

对于记不住的服务器密码且不愿用三方工具俺简单写了个脚本(检测下最近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
相关推荐
木尧大兄弟9 分钟前
linux创建虚拟内存
java·linux·服务器
wanhengidc19 分钟前
云手机的应用场景较为广泛,主要包括以下几个方面:
运维·服务器·安全·智能手机
ZZZKKKRTSAE1 小时前
RHCE认证题解
linux·运维·服务器·ansible·rhce·rhel9·红帽
Lbwnb丶1 小时前
openssl创建公钥私钥 pem+ der
linux·运维·服务器
❀͜͡傀儡师1 小时前
达梦数据库日常运维命令
运维·数据库
2501_920047032 小时前
linux-系统性能监控
linux·运维·服务器
呉師傅2 小时前
奔图P2500NW打印机手机无线连接方法
运维·网络·windows·智能手机·计算机外设·电脑
jsons13 小时前
centos KVM
linux·运维·centos
趴着喝可乐3 小时前
CentOS的ISO镜像下载
linux·运维·centos
白白白鲤鱼3 小时前
Vue2项目—基于路由守卫实现钉钉小程序动态更新标题
服务器·前端·spring boot·后端·职场和发展·小程序·钉钉