`
qindongliang1922
  • 浏览: 2183724 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117527
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125921
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59896
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71300
社区版块
存档分类
最新评论

Linux远程ssh脚本执行命令问题

阅读更多

总结下使用ssh远程执行命令需要注意点:

一般我们会使用ssh ip "执行命令"这种格式来执行远程是shell命令,但是如果是简单的一些操作还好,比如cd,rm,ls,mv等命令一般不会出问题
,但是如果你的脚本任务是,杀死多台机器上的hadoop或者elasticsearch进程,你会怎么做?

直接使用:

ssh h1 "kill -9 `jps | grep Elastic*  | gawk '{print $1}'  ` " 杀死es进程,你会发现,它竟然没有生效? 明明在本地执行

kill -9 `jps | grep Elastic*  | gawk '{print $1}'  `

这个命令是可以生效的,为啥,放到远程执行命令中就失效了呢?

其实原因很简单,就是因为没有转义造成的,包括awk变量名引用都需要转义,否则,你会发现,虽然能执行,但结果依旧是不准确的,注意linux中
单引号(所有命令均被当成普通字符处理)
双引号(可引用变量名)
反引号(可以执行linux脚本命令)的区别
看最终的正确的写法:

ssh $host " es_pid=\`jps | grep Elasticsearch | gawk '{print \$1}'\` && kill \$es_pid    "




最后欢迎大家扫码关注微信公众号:我是攻城师(woshigcs),我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!


1
1
分享到:
评论

相关推荐

    jenkins 执行远程linux命令

    为了实现这些功能,有时需要在远程Linux服务器上执行特定的脚本或命令。本文将详细介绍如何在Jenkins中配置并执行远程Linux命令。 #### 二、准备工作 在开始配置前,请确保以下几点: 1. **Jenkins已安装**:确保...

    ssh批量登录执行命令脚本

    做好ip清单,每行一个ip,ssh批量登录执行命令

    解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题

    Python – paramiko 模块远程执行ssh 命令 nohup 不生效的问题解决 1、使用 paramiko 模块ssh 登陆到 linux 执行nohup命令不生效 # 执行命令 def command(ssh_config, cmd, result_print=None, nohup=False): ssh ...

    xshell ssh自动登录并执行命令脚本.rar

    在Linux或Unix服务器上,SSH常用于远程登录和执行命令。 Xshell作为SSH客户端,提供了丰富的功能,包括颜色配置、多标签会话管理、动态端口转发等。在自动化场景下,我们可以通过Xshell的脚本功能实现自动登录和...

    ssh远程执行脚本

    在这个场景中,我们讨论的是如何使用SSH来远程执行脚本,特别是在多台Linux服务器之间进行批量操作。这个过程通常涉及到几个关键步骤,包括配置SSH免密登录和编写能够跨主机执行命令的shell脚本。 首先,让我们详细...

    windows登录ssh服务器自动执行命令脚本.vbs

    widnows自动登录ssh服务器自动执行命令的脚本

    一个SSH批量远程执行脚本

    batssh是一个在Linux系统下的批量远程执行脚本工具 使用例子: batssh -f /tmp/all_hosts "service iptables stop

    ssh脚本,ssh脚本,ssh脚本

    4. **脚本执行命令**:在SSH脚本中,你可以通过`ssh user@hostname 'command'`来执行远程主机上的命令。例如,`ssh myuser@server.example.com 'ls -l'`会在远程主机上列出目录内容。 5. **重定向和管道**:在脚本...

    linux 远程控制windows系统下的程序(三种方法)

    有时候我们需要通过在linux上远程运行windows系统上的程序。 方法一: 通过python中的 winrm模块,前提条件,先提前设置好winrm服务。如何设置请自行百度,winRM服务是windows server下PowerShell的远程管理服务。...

    远程执行命令脚本,可传密码

    linux下远程执行命令脚本,可传密码,提升权限

    Linux通过Shell脚本命令修改密码的两种方式

    1. ssh 远程到主机; 2. 切换到root账号; [一般都是切换到root进行密码修改,如果普通用户修改自己的密码,要输入原密码,然后新密码要满足复杂度才OK]; 3. passwd username 使用passwd username 修改 username 的...

    SSH远程管理Linux常用命令文件上传下载.docx

    使用 SSH 客户端软件可以远程管理 Linux 系统,执行常用的 Linux 命令,例如查看系统状态、下载文件、编辑文件、移动文件、删除文件等。 三、常用 SSH 命令 1. top 命令:实时查看系统状态,包括 CPU 占用率、内存...

    java通过代码登录远程linux服务器并执行linux命令源码以及jar包

    这在自动化运维、远程脚本执行等场景中非常常见。本篇将详细讲解如何实现这一目标,并提供相关源码及jar包。 首先,我们要使用的Java库是JSch,这是一个纯Java实现的SSH2库,支持SFTP、端口转发等功能。在项目中...

    基于SSH技术的Linux远程控制系统的设计与实现.pdf

    "基于SSH技术的Linux远程控制系统的设计与实现" 本文旨在设计和实现基于SSH技术的Linux远程控制系统,以满足Linux和Windows操作系统之间的信息交互需求。该系统采用C#语言实现,通过在Linux服务器端设置公钥文件,...

    java控制台输入cmd命令, ssh远程linux shell命令, 并打印命令输出到控制台

    在Java编程中,有时我们需要与操作系统进行交互,执行系统级别的命令,例如在控制台执行CMD命令或者通过SSH连接远程Linux服务器执行shell命令。这在自动化脚本、系统管理或者远程监控等场景中非常常见。本篇文章将...

    Linux下使用SSH远程执行命令方法收集

    在Linux系统中,SSH(Secure Shell)是一种广泛使用的网络协议,用于安全地远程登录到另一台计算机并执行命令。SSH提供了加密的网络通信,确保数据传输的安全性。本篇文章将详细探讨如何在Linux环境下利用SSH远程...

    linux远程访问工具SshClient

    SSH协议允许用户通过命令行界面(CLI)远程登录到Linux系统,执行各种命令,如系统管理、文件操作、脚本执行等。此外,SSH还支持端口转发,可以将本地网络的某个端口流量转发到远程服务器,增强了网络服务的安全性和...

    SSH脚本文件.zip

    8. **计划任务**:为了自动化执行SSH脚本,可以将其与系统调度器(如Linux的`cron`)结合,设定定期执行时间。 9. **脚本参数**:为了使脚本更灵活,可以添加命令行参数,使用`getopts`或`getopt`函数解析参数,...

    远程批量修改linux服务器密码的脚本归类.pdf

    我们使用 SSH 来连接远程 Linux 服务器,并执行相关的命令。 3. Linux 服务器密码的修改:我们使用 Expect 脚本来修改 Linux 服务器的密码。该脚本可以自动地输入密码,并执行相关的命令。 4. 用户和组的管理:在 ...

    通过SSHPASS执行命令及相关脚本

    标题中的“通过SSHPASS执行命令及相关脚本”是指在Linux环境下使用`sshpass`工具进行非交互式SSH登录并执行远程命令的技术。`sshpass`是一个命令行实用程序,它允许用户在不手动输入密码的情况下,通过SSH连接执行...

Global site tag (gtag.js) - Google Analytics