linux 远程登录执行命令

@(Linux 命令脚本)

方便自动化运维部署,在多台机器上自动执行命令。 ssh 需要输入密码, 所以使用 expect 进行交互,从执行文本读取远程主机 IP, 登录名和密码后执行远程登录,执行命令。

脚本 remote_cmd.sh

#!/bin/bash

if [ ! -f "host.list" ]; then
    echo "host.list no exit"
    exit -1
fi

# 去除空行
sed -i '/^[:space:]*$/d' host.list

while read LINE
do
    eval $(echo $LINE | awk '{printf("IP=%s USER=%s PASSWD=%s",$1, $2, $3)}')
    expect <<-END
        set timeout 1200
        spawn ssh -p 36000 -l $USER $IP 
        expect {
            "yes/no"  {send "yes\r"; exp_continue}
            "password:" {send $PASSWD\r";}
        }
        sleep 1
        send "cd ~/work/\r"
        sleep 1
        send "touch aa\r"
        sleep 1
        send "exit\n"
        expect eof
        exit
    END
done < host.list

主机列表 host.list

192.168.67.236 lcd jklfds
192.168.67.236 lcd jklfds

通过 ssh 远程登录执行命令,启动远程终端, 通过参数 -t 实现 :

ssh -t -p 36000 -l lcd 192.168.67.236 "mkdir -p ~/work/lcd"

expect 需要安装 : ubuntu 下 : sudo apt-get install expect

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏挖坑填坑

.net core2 类库发布,更新nuget包。

这样就将包发布到https://www.nuget.org上了,如果要发布到内网私有的nuget管理,这个地址也要替换成私有的地址。

872
来自专栏丑胖侠

Spring boot 数据源未配置异常

问题 在使Springboot自动生成的项目框架时如果选择了数据源,比如选择了mysql,生成项目之后,启动会报一下异常: Description: Cann...

3348
来自专栏写写代码吃吃瓜

Sublime Text 常用环境和插件配置

1593
来自专栏Go 语言编程

aurora - 跨平台 Beanstalk 消息队列服务器管理工具

aurora 是一个基于 Web 的 Beanstalk 消息队列服务器管理工具,单文件无需依赖其他组件,支持管理本地和远程多个队列服务器。

5977
来自专栏禁心尽力

持久层框架之MyBatis

1、mybatis框架介绍:   MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software founda...

2675
来自专栏电光石火

eclipse配置tomcat运行时访问路径不要项目名称

1:双击打开tomcat 2:选择Modules,选择你要修改的项目 ? 3:点击Edit,把path修改成空或者你自己想要的路径即可! ?

3136
来自专栏dalaoyang

Intellij IDEA实现SpringBoot项目多端口启动

2884
来自专栏琯琯博客

ThinkPHP 连接 sql server 数据库配置

一、ThinkPHP3 的配置 二、ThinkPHP5 的配置 三、原生 pdo sqlsrv 连接 四、原生 sqlsrv 连接 五、总结 PHP 连接 sq...

5688
来自专栏cloudskyme

jbpm5.1介绍(11)

Jbpm-gwt-console源码编译 从svn下载,svn的下载地址是 http://anonsvn.jboss.org/repos/soag/bpm-c...

3214
来自专栏黑泽君的专栏

Eclipse各版本代号一览表以及官网上有很多版本的eclipse,下载哪个版本比较合适呢?

Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。

7091

扫码关注云+社区

领取腾讯云代金券