linux expect实现登陆远程主机并执行命令示例代码
本文主要给大家介绍了关于linux expect实现登陆远程主机并执行命令的相关内容,分享出来供大家参考学习,下面来一看看详细的介绍:
示例代码:
#!/bin/bash export cmd=$1 expect << 'END' set cmd "$env(cmd)" spawn ssh root@192.168.56.1 $cmd expect { "(yes/no)?" {send "yes\r";exp_continue} "password:" {send "root\r";exp_continue} eof } END
解释
- export 定义一个变量,获取$1
- expect << 'END' 开始expect脚本,最后END结束
- set cmd "$env(cmd)" 获取系统变量
- spwan 开始一个进程
- expect {} 具体的应答消息
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
linux中expect的介绍与使用示例
一.概述 我们通过Shell可以实现简单的控制流功能,如:循环.判断等.但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能.而Expect就使用来实现这种功能的工具. Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预.Expect的作者Don Libes在1990年 开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互功能的软件套件 (Expect [is a]
-
Linux中使用expect脚本实现远程机器自动登录
首先创建一个expect脚本ssh_expect,文件内容如下: #!/usr/bin/expect -f set hostname [lindex $argv 0] set user [lindex $argv 1] set passwd [lindex $argv 2] set timeout 30 set force_conservative 1 if {$force_conservative} { set send_slow {128 .1} } spawn ssh $user@$hos
-
expect实现批量修改linux密码脚本分享
最近对linux批量执行的脚本很感兴趣,在网上到处找有关expect批量执行脚本,今天就给大家共享一个批量修改密码的脚本. 脚本内容: 复制代码 代码如下: #!/usr/bin/expect if { $argc<2 } { send_user "usage: $argv0 <host file> <cmd file> \n" exit } # 机器列表数据格式: IP 端口 旧密码 新密码 set hostfile [
-
linux expect实现登陆远程主机并执行命令示例代码
本文主要给大家介绍了关于linux expect实现登陆远程主机并执行命令的相关内容,分享出来供大家参考学习,下面来一看看详细的介绍: 示例代码: #!/bin/bash export cmd=$1 expect << 'END' set cmd "$env(cmd)" spawn ssh root@192.168.56.1 $cmd expect { "(yes/no)?" {send "yes\r";exp_continue} &
-
实战基本的Linux sed命令示例代码
Linux流编辑器是在数据中心中运行脚本的一种有用方法.通过这些命令示例,您可以开始熟悉sed. 想要修改文件而不覆盖原始文件的Linux管理员有很多选择,但最有效的工具之一是流编辑器 - sed. 流编辑器是大多数Linux发行版的默认部分.它使您能够使用Linux sed命令在操作系统中执行文本文件操作. 与大多数Linux应用程序一样,sed可以处理管道输入,这使它成为一种有效的脚本工具.您可以将其用作基本的查找和替换工具,如下面的示例命令所示,该命令查找出现的一个实例,并将其替换为两个实
-
详解在Linux下9个有用的touch命令示例
touch 命令用于创建空文件,也可以更改 Unix 和 Linux 系统上现有文件时间戳.这里所说的更改时间戳意味着更新文件和目录的访问以及修改时间. 让我们来看看 touch 命令的语法和选项: 语法: # touch {选项} {文件} touch 命令中使用的选项: 在这篇文章中,我们将介绍 Linux 中 9 个有用的 touch 命令示例. 示例:1 使用 touch 创建一个空文件 要在 Linux 系统上使用 touch 命令创建空文件,键入 touch ,然后输入文件名.如下所
-
shell脚本实现同时多台远程主机执行命令的代码分享
实现需求 在对单台机器做操作时我们会用"ssh ip"的方式登录到机器上,可以写这样一个工具vssh ip1,ip2,-ipn 来模拟登录到n 台服务器,登录后所有操作相当于同时对n 台服务器生效. 实现方法 首页要确保可以通过本地公钥无密码登录远程主机: ssh-copy-id [-i [identity_file]] [user@]machine shell脚本 #!/bin/bash # ----------------------------------------------
-
shell脚本批量复制及执行命令的示例详解
平时在处理一个或几个机器运行环境时,一个机器一个机器处理也能接受,但是如果是一批机器,几十或几百台,要是一台一台去安装环境,光是输入同一的命令,估计你自己都想吐,所有聪明的人会想一些偷懒的办法,确实可以找到一些省时省力的方法,比如写一个批量处理shell脚本,这几天在处理一批(八九十台)机器环境,找了一些批量处理的脚本,包括批量传输(scp)文件到多台机器上.批量执行命令到多台机器.还有需要交互的命令,下面记录一些这些命令: 机器IP文件:ip.txt 192.168.10.201 192.16
-
用vbs通过135端口执行命令的脚本
wmiexec.vbs(通过135端口执行命令) 复制代码 代码如下: set ww=createobject("wbemscripting.swbemlocator") set cc=ww.connectserver("172.20.241.218","root/cimv2","user","password") Set pp=cc.get("Win32_Process") pp
-
C#程序调用cmd.exe执行命令
在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统.输入一些命令,cmd.exe可以执行,比如输入shutdown -s就会在30秒后关机.总之,它非常有用.打开方法:开始-所有程序-附件 或 开始-寻找-输入:cmd/cmd.exe 回车.它也可以执行BAT文件. 下面介绍使用C#程序调用cmd执行命令: 代码: using System; using System.Collecti
-
Python Paramiko上传下载sftp文件及远程执行命令详解
目录 一.简介 安装模块 二.上传文件 三.下载文件 四.远程执行命令 五.错误集锦 原因 解决 一.简介 Paramiko模块是基于Python实现的SSH远程安全连接,用于SSH远程执行命令.文件传输等功能. 安装模块 默认Python没有自带,需要手动安装: pip3 install paramiko 二.上传文件 #!/usr/bin/env python3 # coding: utf-8 import paramiko def sftp_upload_file(host,user,pa
-
Python远程linux执行命令实现
1.远程登录到linux上,使用到的模块paramiko #远程登陆操作系统 def ssh(sys_ip,username,password,cmds): try #创建ssh客户端 client = paramiko.SSHClient() #第一次ssh远程时会提示输入yes或者no client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #密码方式远程连接 client.connect(sys_ip, 22, userna
-
Python实现SSH远程登陆,并执行命令的方法(分享)
在自动化测试过程中,比较常用的操作就是对远程主机进行操作,如何操作呢?使用SSH远程登陆到主机,然后执行相应的command即可. 使用Python来实现这些操作就相当简单了.下面是测试code. 代码如下:(code运行环境:python27+eclipse+pydev) import paramiko def sshclient_execmd(hostname, port, username, password, execmd): paramiko.util.log_to_file("par
随机推荐
- Angular2 组件间通过@Input @Output通讯示例
- JavaScript 巧学巧用
- JS实现从表格中动态删除指定行的方法
- PHP preg_match的匹配多国语言的技巧
- java使用WatchService监控文件夹示例
- js动态加载以及确定加载完成的代码
- php使用mb_check_encoding检查字符串在指定的编码里是否有效
- php文件操作实例代码
- Android 顶部标题栏随滑动时的渐变隐藏和渐变显示效果
- js去字符串前后空格的实现方法
- Javascript优化技巧(文件瘦身篇)
- 基于Java 数组内存分配的相关问题
- PowerShell中获取当前运行脚本路径的方法
- apache的access.log和error.log减肥
- SSH框架网上商城项目第16战之Hibernate二级缓存处理首页热门显示
- JavaScript必知必会(二) null 和undefined
- 利用java反射机制实现自动调用类的简单方法
- java 输入一个数字,反转输出这个数字的值(实现方法)
- 解析linq to xml操作XML的示例分析
- c#读取excel方法实例分析