资料来源:

(1) https://baike.baidu.com/item/expect/4598715?fr=aladdin

(2) https://blog.csdn.net/gsjthxy/article/details/123441100?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165568847216781685354744%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165568847216781685354744&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-123441100-null-null.nonecase&utm_term=%E8%87%AA%E5%8A%A8%E5%88%87%E6%8D%A2&spm=1018.2226.3001.4450

(3) https://www.cnblogs.com/liyuanhong/articles/10390785.html

(4) https://blog.csdn.net/three_man/article/details/45153441

1.linux中自动切换项目账户

1 #!/usr/bin/expect
2
3 spawn su user_name //其中,user_name为用户名,需要进行替换;
4 expect "Input Password:" //其中,"Input Password:"为linux terminal上执行su操作而打印的信息,根据实际情况进行替换操作;
5 send "user_password\r" //其中,user_password为用户密码,需要进行替换;
6 interact

2.linux中自动登录远程服务器

1 #!/usr/bin/expect
2
3 set timeout 60
4 spawn ssh 远程服务器信息 //远程服务器信息需要进行替换;
5 expect "password:" //password需要用ssh远程服务器时屏幕所打印的实际信息进行替换;
6 send "user_password\r" //user_password需要用用户密码进行替换:
7 interact

3.带命令行参数的expect脚本

#! /usr/bin/expect

set ip [lindex $argv 0];
set username [lindex $argv 1];
set password [lindex $argv 2]; set key_init "*yes/no*"
set key_password "[Pp]assword:"
set timeout 30
set prompt "(#|%|\\$) $" spawn ssh ${username}@${ip} expect {
"$key_init" {
send "yes\r"
expect "$key_password" {
send "${password}\r"
}
} "$key_password" { send "${password}\r" } timeout { puts "Timed out during login"; exit 1 }
} expect -re "$prompt"
send "exit\r"
expect eof { send_user "eof\r" }
————————————————
版权声明:本文为CSDN博主「three_man」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/three_man/article/details/45153441

expect语言使用之自动切换账户或自动登录远程服务器的更多相关文章

  1. 用Python写个自动ssh登录远程服务器的小工具

    很多时候我们喜欢在自己电脑的终端直接ssh连接Linux服务器,而不喜欢使用那些有UI界面的工具区连接我们的服务器.可是在终端使用ssh我们每次都需要输入账号和密码,这也是一个烦恼,所以我们可以简单的 ...

  2. linux自动备份文件 并上传到远程服务器 脚本实现

    (1)在服务器上创建备份目录,并赋予权限       mkdir -p /backup/bakdata  #新建数据备份目录(2)完成备份脚本操作新建脚本文件      vi bakdata.sh添加 ...

  3. SQL Server自动备份 备份到本地或者远程服务器

    0.1 在SQLServer2008 --> 备份数据库 --> 安全 --> 新建用户 --> 用户名 选择该windows用户 (确保 --> 机器名/人名 --&g ...

  4. mac 操作系统使用iterm(2)自动登录远程服务器

    找一个目录创建一个普通的文件,例如 vi myprofile ,编辑以下内容 #!/usr/bin/expect set PORT 22 set HOST www.****.com(或者ip地址) s ...

  5. [整理]配置SSH密钥自动登录远程服务器

    原理: 公钥私钥匹配通过验证,允许访问服务器. 简单步骤: 1.在本地创建一对密钥 2.将公钥传到需要访问的服务器上 3.将公钥放入服务器的authorized_keys,确保访问时能通过验证 4.本 ...

  6. Linux下使用expect实现跳板机自动跳转/免密登录/自动登录(转)

    shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 expect "*password:&quo ...

  7. 双机高可用、负载均衡、MySQL(读写分离、主从自动切换)架构设计

    前几天网友来信说帮忙实现这样一个架构:只有两台机器,需要实现其中一台死机之后另一台能接管这台机器的服务,并且在两台机器正常服务时,两台机器都能用上.于是设计了如下的架构. 架构简介 此架构主要是由ke ...

  8. Linux登录自动切换root账户与历史命令优化

    1:当我们Linux系统优化完成,会使用oldboy用户远程连接CRT登录,每次连接都需要使用sudo su - 或者su - 输入密码登录,请问如何在CRT连接的时候自动的切换到root账户,(提示 ...

  9. 页面多语系自动切换-.resx

    实现这个需要应用到微软提供的本地资源文件Resources,实际上就是一种key  value的形式. 语言自动切换原理有两种 读取浏览器的语言首选项 根据IP网段进行识别.比如有的人通过VPN连接到 ...

  10. 【转】expect语言学习笔记

       上周mentor要求我写一个unix shell 脚本, 以便半夜让服务器自动编译image. 其实我觉得每天我走的时候让服务器编译不也挺好的么... 我懒,假装没听见好不容易赖过去了.     ...

随机推荐

  1. GetShell 之:利用 SQLServer GetShell

    GetShell 之:利用 SQLServer GetShell 目录 GetShell 之:利用 SQLServer GetShell 1 SQLServer 基础操作 2 SQLServer 利用 ...

  2. vue api封装 request.js

    import axios from 'axios' import { Message, MessageBox } from 'element-ui' import store from '../sto ...

  3. LeetCode算法训练-动态规划

    欢迎关注个人公众号:爱喝可可牛奶 LeetCode算法训练-动态规划 理论知识 动态规划当前状态是由前一个状态推导出来的,而贪心没有状态的转移 动态规划需要借助dp数组,可能是一维也可能是二维的 首先 ...

  4. LeetCode-1145 二叉树着色游戏

    来源:力扣(LeetCode)链接:https://leetcode.cn/problems/binary-tree-coloring-game 题目描述 有两位极客玩家参与了一场「二叉树着色」的游戏 ...

  5. QQ空间数据抓取

    title: QQ空间数据抓取 author: 杨晓东 permalink: QQ空间数据抓取 date: 2021-10-02 11:27:04 categories: - 嗯哼 tags: - 无 ...

  6. 以图搜图功能实现(windows10版)

    1,原理 存储:通过Core项目调取python接口,python通过使用towhee把图片转成向量存在milvus向量数据库中. 查询:通过Core项目调取python接口,python根据查询的图 ...

  7. dns服务之bind配置内网解析部分子域名,其它子域名转发

    bind配置内网解析部分子域名,其它子域名转发.以下以m.xxx.com和admin.xxx.com由内网dns解析,其它*.xxx.com转发给外网dns解析为例配置.文件/etc/named.co ...

  8. Property or method "scope" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components

    报错如下 属性或方法"范围"不是在实例上定义的,而是在呈现期间引用的. 通过初始化属性,确保此属性是反应性的,无论是在数据选项中,还是对于基于类的组件. 原因在template中未 ...

  9. pgsql判断字符串是否为数字

    利用正则表达式来对字符串进行匹配 因为工作遇到了一个问题需要对字符串是否可以转换为数值进行判断.今天关于这个问题进行一个分享,流程如下 数字的正则表达式 ^([0-9]+.?[0-9]*|.[0-9] ...

  10. 2022-05-05内部群每日三题-清辉PMP

    1.在项目规划阶段,质量保证经理建议实施三重测试环境以确保产品质量.项目经理确定这项建议将会增加成本,而且开发和认证环境将足以保证质量.项目经理应使用什么来影响质量保证经理? A.质量成本(COQ) ...