欢迎来到山村网

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

2019-03-09 09:29:51浏览:697 来源:山村网   
核心摘要:  Linux下非交互式远程执行命令脚本(比ssh更好的方式)  openssh在每台机器上都有,ssh与scp经常出现在我们的生活中。  然

  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

  执行结果就像这个样子。

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

  如果我们把机器列表写到一个文件里,比如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启动服务进程。

(责任编辑:豆豆)
下一篇:

2台TP-Link无线路由器怎么桥接

上一篇:

Linux操作系统下防范黑客的一些实用技巧

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com