环境: redhat 6.5

根据网上提供方法,测试了很多写法都不成功,测试了很久才有了以下脚本。

命令远程连接ssh并执行命令,scp/ftp等远程连接操作同理:

#!/usr/bin/expect

set passwd "password"

set user "root"

set host "192.168.1.168"

#spawn表示开启新expect会话进程

spawn ssh $user@$host

#有可能检测密钥方式连接,我的没有所以先注释了

#expect检测字符串经过简单测试,应该是以正则表达式匹配接收的字符

#expect "yes/no"

#send "yes\r"

expect  "password"

send "$passwd\r"

expect "$user@"

#感觉shell交互就是得expect先接收,才能进行下一步send

send "echo 'passwd' >> /root/for_test.sh\r"

expect "$user@"

send "exit\r"

#expect eof表示结束expect和相应进程会话结束,如果用interact会保持停留在当前进程会话

expect eof

shell脚本命令远程连接ssh并执行命令的更多相关文章

  1. Shell脚本中实现切换用户并执行命令操作【转】

    第一种方法 cat test.sh #!/bin/bashsu - test <<EOFpwd;exit;EOF 执行结果图: 第二种方法 当然也可以用下面的命令来执行 复制代码代码如下: ...

  2. golang使用ssh远程连接服务器并执行命令

    安装golang.org/x 直接去github上面,把https://github.com/zieckey/golang.org,把整个目录拷贝下来放到你的gopath下面即可.记住在gopath的 ...

  3. [CTF技巧]批量连接SSH批量执行命令

    https://files.cnblogs.com/files/nul1/autossh1.3.jar.zip 下载下来以后直接将后缀去除就好了. 比赛的时候可以批量写一个不死马然后你懂的. Linu ...

  4. Linux centosVMware运行告警系统、分发系统-expect讲解、自动远程登录后,执行命令并退出、expect脚本传递参数、expect脚本同步文件、指定host和要同步的文件、shell项目-分发系统-构建文件分发系统、分发系统-命令批量执行

    一运行告警系统 创建一个任务计划crontab -e 每一分钟都执行一次 调试时把主脚本里边log先注释掉 再次执行 没有发现502文件说明执行成功了,每日有错误,本机IP 负载不高 二.分发系统-e ...

  5. Linux 使用 ssh 命令远程连接另一台 Linux

    用 Linux 系统的 ssh 命令远程连接另一台 Linux 机器的命令 #ssh 用户名@主机名(IP地址) 例: #ssh root@10.41.24.138                  ...

  6. java使用ssh连接Linux并执行命令

     方式1:通过设置账号密码和链接地址 maven pom.xml配置: <dependency>         <groupId>com.jcraft</groupId ...

  7. Ubuntu16.04下使用rdesktop命令远程连接windows机器

    前段时间在本机安装了ubuntu16.04桌面版,后来需要远程连接一台win10系统的跳转机,下面介绍使用rdesktop命令远程连接windows机器的操作记录:1)首先安装rdesktop工具 k ...

  8. 网络分析shell脚本(实时流量+连接统计)

    介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介绍下.脚本运行效果截图: 此脚本包含的功能有: 1.实时监控任意网卡的流量 2.统计10秒内平均流量 3.统计 ...

  9. 虚拟机联网及远程连接-Linux基础环境命令学习笔记

    1.ifconfig命令=ip a命令,查看IP地址 网卡默认名称eth0. Bcast 广播地址2.xshell or secureCRT远程连接 ssh root@地址 xmanager 远程桌面 ...

随机推荐

  1. java 反射简说

    1 Class类 就是类的类型.研究反射先了解下Class类. 获取类的类型的三种方法: Class c1 = 对象.getClass(); Class c2 = Class.forName(&quo ...

  2. opendaylight-O版本与openstack集成

    feature:list list (Lists all existing features available from the defined repositories) feature:list ...

  3. Supervisor使用(启动nginx/tomcat/redis)

    官方文档:http://supervisord.org/   一.安装 yum install -y supervisor   二.开机自启动 执行以下命令: systemctl enable sup ...

  4. ADO.Net中DataSet的应用

    一.知识点描述 1.DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合.也就是说,即使断开数据链路,或者关闭数据库,Data ...

  5. Eureka的初识

    在bili看完spring cloud eureka高可用注册中心的视频以后总结: 正常开发中,肯定有一个功能聚集服务中心,将功能方法全部写入其中,也就是一个springboot项目.该服务配置如下: ...

  6. python 将汉字转换为拼音

    xpinyin提供把汉字转为汉语拼音的功能. 安装此模块 pip install xpinyin简单用例: from xpinyin import Pinyin pin = Pinyin() test ...

  7. rsa公钥和私钥的生成

    在liunx环境中 openssl 然后生成私钥: genrsa -out app_private_key.pem 2048 # 私钥的生成 在利用私钥生成公钥: rsa -in app_privat ...

  8. 小程序swiper指板点样式修改

    swiper(class名).wx-swiper-dots.wx-swiper-dots-horizontal{    //距离底部高度 margin-bottom: 2rpx; } swiper(c ...

  9. MHA-Atlas-MySQL高可用集群2

    MHA脚本管理方式 (1)获取管理脚本master_ip_failover 提示:yum安装的manager是没有这个脚本的. 我们需要从manager的源码包里复制一个.   [root@mysql ...

  10. 使用 whereis/which/locate 查找文件

    whereis命令 whereis只能用于搜索可执行文件 (-b) , 联机帮助文件 (-m) 和源代码文件 (-s) . 它只在一个数据库中查询(/var/lib/mlocate) . 这个数据库是 ...