Linux下非交互式远程执行命令脚本

   Linux下非交互式远程执行命令脚本(比ssh更好的方式)

  openssh在每台机器上都有,ssh与scp经常出现在我们的生活中。

  然而当要管理的机器规模越来越大时,ssh登陆到目标机器进行管理就变得不现实了。

  虽然可以直接在ssh后面接命令的方式,进行命令的执行。 但是ssh的严格的权限认证使得我们不得不输入密码,或是建立信任关系,很难去自定义一个特定的认证方式。

  基于ssh的这种不足。于是笔者就写了一个jetfire,这个工具。比ssh多的一个重要的功能就是可以自定义认证方式,顺便避免了ssh一个潜在的bug。

  bug是这个样子。这里举个例子,假设目标机器是example.com

  [python]

  ssh example.com echo "hello world"

  执行这个命令,看到的输出,不是

  [python]

  hello world

  而是

  [python]

  hello world

  猜测ssh是把 echo "hello world"这个命令,转化成字符串,然后用bash -c 去执行的。写jetfire的时候,顺便修了这个问题。

  jetfire的用法也很简单。

  jetfire -h example.com 命令放在后面就可以了

  eg: jetfire -h example.com echo hi boy

  对于多个机器的话,方法也很简单 jetfire -h example1.com,example2.com echo hi boy

  执行结果就像这个样子。


  如果我们把机器列表写到一个文件里,比如host.list,结合xargs命令,可以写出更高级的方法

  cat host.list | xargs -r -i{} jetfire -h {} echo hi boy

  安装也很简单, 下载https://github.com/shxsun/jetfire/blob/master/jetfire0.9-arm64.tar.gz,解压后, 切换到root,sh install.sh 就算安装上了, /etc/init.d/jetfirectl start启动服务进程。

时间: 2024-08-03 12:43:03

Linux下非交互式远程执行命令脚本的相关文章

linux下使用ssh远程执行命令批量导出数据库到本地_linux shell

前天正在跟前端的同事调试功能.服务器开好,模拟的玩家登录好,就在倒计时.这时突然运营的同事跑过来说要统计几个服务器玩家的一些情况,也就是需要从几个服的数据库导出部分玩家的数据.好吧,我看了一下时间,11:47.心想,跟前端调试完,去吃个饭再午休一下那就下午再给吧.没想对方来一句"就导个数据库而已,要这么久么?",而且还是直接跟我上司说的.我嚓,好吧,我导.可问题来了,平时的统计是由php做的,批量部署这些是由运维做的.服务端完全没有对应的工具.而且服务器是在阿里云上的,数据库的用户是限

Linux下非交互式sshpass登录

摘要 在命令行 非交互的SSH登录的时候,一般我们可以借助于生成用户的公钥私钥对,然后把公钥添加到远程主机的authorized_keys文件,可以实现非交互无密码登录. 其实这里也可以有另外一种方式实现,即用sshpass命令. 这种情况比较适合Mac下用iterm2 SSH登录到远程主机的时候,长时间不操作导致 packet_write_wait: Connection to 192.168.xxx.xxx port 22: Broken pipe问题的解决办法 安装sshpass #!/u

两种Linux下非交互式命令的实现

一.概述 在Linux环境,有多种实现自动化的脚本语言,如Shell.Python.Perl.Tcl等.Shell语言因与Shell外壳结合紧密,是最常见的实现自动化的脚本语言. 同时,在Linux环境中存在大量功能单一的小工具--通常它们在指定输入后,立即就可获得输出,例如echo.cat等字符串/文本打印工具,又或者是如sed.awk等最常用的字符串编辑工具.通过编写Shell脚本,我们可以反复利用这些小工具来实现一些自动化的批处理. 在少数情况下,我们也需要用到一些交互式的工具,例如pas

在linux下利用crontab定时执行PHP脚本

最近急需这种方法,记录一下,有空的时候尝试^^ 在 linux下,可以使用crontab + php的方法: 1.使用crontab –e编辑定时任务 内容为: xx:xx:xx 执行一个test.php文件 2.php文件必须在文件头一行,加上解释器路径(就象perl做的那样) #!/usr/local/bin/php PHP的执行需要Apache的支持,shell脚本的执行需要Linux的支持,而Linux支持定时运行某个程序的功能 -----------------------------

Linux Shell远程执行命令(命令行与脚本方式)

shell远程执行: 经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了.一下介绍两种shell命令远程执行的方法. 前提条件: 配置ssh免密码登陆 对于简单的命令: 如果是简单执行几个命令,则: ssh user@remoteNode "cd /home ; ls" 基本能完成常用的对于远程节点的管理了,几个注意的点: 双引号,必须有.如果不加双引号,第二个ls命令在本地执行 分号,两个命令之间用分号隔开 对于脚

借助Shell让你在Linux下也能用DOS命令

如果你是习惯于Windows命令提示符的IT人,当你第一次使用Linux命令行时 ,一定会感到无所适从.你所熟悉的DOS命令再Linux中基本不存在.摆在你面前 的是一大堆要记背的命令. 一种替代方案是利用强大的Linux外壳命令编写shell脚本,让你在Linux下也 能用DOS命令.下面告诉你怎么做. shell脚本编写基础 从定时备份到执行简单命令,Linux的shell脚本可以执行各种功能.几乎所 有的程序都可以用shell脚本来运行.在脚本中甚至可以包含一些简单的条件选 择.shell

Linux下启动java程序的通用脚本sh

在网上找到一个挺好的通用shell脚本. 只需要修改一些配置变量,就可以用来做起动脚本了. 并且除了能起动.还支持关闭.重启.查看是否正在运行的功能. 原文地址:http://www.tudaxia.com/archives/10 start函数中,nohup部分其实也可以提出来放入一个配置变量中.这里没有修改直接贴上作者的原文 #!/bin/sh #该脚本为Linux下启动java程序的通用脚本.即可以作为开机自启动service脚本被调用, #也可以作为启动java程序的独立脚本来使用. #

如何使用Go语言实现远程执行命令_Golang

前言 远程执行命令有什么用?为什么要远程执行命令? 如果你只有2,3台服务器需要管理的时候,远程执行命令确实没有没多大作用,你可以登录到每台服务器上去完成各种操作. 当你的服务器大于3台的时候,远程执行的命令的方式就可以大大提高你的生产力了. 如果你有一个可以远程执行命令的工具,那么就可以像操作单台机器那样操作多台机器,机器越多,效率提高的越多. 远程执行命令最常用的方法就是利用 SSH 协议,将命令发送到远程机器上执行,并获取返回结果. 一般命令 所谓一般命令,就是在一定时间内会执行完的命令.

《Linux指令从入门到精通》——4.3 Linux下全屏幕文本编辑器的命令行方式

4.3 Linux下全屏幕文本编辑器的命令行方式 4.3.1 emacs:文本编辑指令 初步了解emacs编辑器的基础功能,学会使用emacs指令来进行文本编辑.电邮收发等各项功能. emacs [-可选参数] [文件名] Emacs (Editor MACroS编辑器宏) 是一个功能强大的文本编辑器.该指令不仅可以用来编辑文本文件,还可以收发电邮.编辑远程文档.通过Telnet登录远程主机.登录IRC.查看日历.支持多种编程语言(如C/C++,Perl,Python,Lisp等).管理日程和个