Linux集群服务器上运行命令的4个实用工具

news2024/11/19 18:39:04

       

目录

1. PSSH-Parallel SSH

 安装parallel-ssh,

使用

2. Pdsh-并行远程Shell实用程序

3. ClusterSSH

安装

4. Ansible


我们假设你已经设置好了SSH以便访问所有服务器;其次假设,同时访问多台服务器时,在所有Linux服务器上设置基于密钥的无密码SSH是合适的。这增强了服务器的安全性,并让用户易于访问。

1. PSSH-Parallel SSH

Parallel-SSH是一个快速且易于使用的基于命令行的开源Python工具包,用于在众多Linux系统上并行执行ssh。它包括用途不一的许多工具,比如parallel-ssh、parallel-scp、parallel-rsync、parallel-slurp和parallel-nuke(想了解更多信息,请阅读相应工具的参考手册页)。

 安装parallel-ssh,

需要先在Linux系统上安装PIP。

 
  1. $ sudo pip install parallel-ssh  

  2. $ sudo apt install python-pip python-setuptools #Debian/Ubuntu  

  3. # yum install python-pip python-setuptools #RHEL/CentOS  

  4. # dnf install python-pip python-setuptools #Fedora 22+  

然后使用pip安装parallel-ssh,如下所示。

 
  1. $ sudo pip install parallel-ssh 

接下来,在一个名为hosts的文件中输入带SSH端口的远程Linux服务器的主机名或IP地址(该文件名可随意命名):

使用

  1. $ vim hosts  

  2. pssh hosts file  

  3. 192.168.0.10:22  

  4. 192.168.0.11:22  

  5. 192.168.0.12:22  

保存文件并关闭。

现在运行parallel-ssh,使用-h选项指定hosts文件,并指定在所有指定的服务器上执行的一个或多个命令。-i标志意味着,在每台服务器上执行命令完成后,显示std输出和std错误。

 
  1. $ parallel-ssh -h hosts "uptime; df -h" 

图1:Pssh――在多台Linux服务器上运行命令

2. Pdsh-并行远程Shell实用程序

Pdsh是一个简单的开源并行远程shell工具,用于同时在多台Linux服务器上执行命令。它使用线程滑动窗口来执行远程命令。

想在Linux计算机上安装Pdsh,运行以下相应的命令。

 
  1. $ sudo apt install pdsh #Debian/Ubuntu  

  2. # yum install pdsh  #RHEL/CentOS  

  3. # dnf install pdsh #Fedora 22+  

想在多台服务器上运行命令,将服务器添加到hosts文件,如前所述。然后运行pdsh,如图所示;标志-w用于指定hosts文件,-R用于指定远程命令模块(可用的远程命令模块包括ssh、rsh和exec,默认模块是rsh)。

留意hosts文件前面的^。

 
  1. $ pdsh -w ^hosts -R ssh "uptime; df -h" 

图2:Pdsh――在多台Linux服务器上执行命令

如果你没有在命令行上指定要执行的远程命令,如上所示,pdsh将以交互方式运行,提示你输入命令,并在使用回车符终止时运行命令。想了解更多信息,请查阅pdsh参考手册页:

 
  1. $ man pdsh 

3. ClusterSSH

ClusterSSH是一个命令行工具,用于同时管理多台服务器组成的集群。它为所有指定的服务器启动管理控制台和xterm,让你可以在所有服务器运行同一个命令。

安装

想使用clusterssh,先将它安装在本地Linux计算机上,如图所示。

 
  1. $ sudo apt install clusterssh #Debian/Ubuntu  

  2. # yum install clusterssh #RHEL/CentOS  

  3. $ sudo dnf install clusterssh #Fedora 22+  

现已安装了它,同时在远程服务器上打开管理控制台和xterm,如下所示。想在所有服务器上运行命令,点击xterm输入栏,然后输入要运行的命令;想管理单个主机,请使用其管理控制台。

 
  1. $ clusterssh linode cserver contabo 

或者

 
  1. $ clusterssh username@server1 username@server2 username@server3 

图3:Clusterssh――管理多个SSH会话

想了解更多信息,请查阅clusterssh参考手册页:

 
  1. $ man clusterssh 

4. Ansible

Ansible是一个实现IT流程自动化的热门开源工具。它用于配置和管理系统、部署应用程序等等。

想在Linux系统上安装Ansible,运行以下相应的命令:

 
  1. $ sudo apt install ansible #Debian/Ubuntu  

  2. # yum install ansible #RHEL/CentOS  

  3. $ sudo dnf install ansible #Fedora 22+  

安装ansible后,可以在文件/etc/anasible/hosts中添加服务器的主机名或IP地址。

 
  1. $ sudo vim /etc/anasible/hosts 

在组中指定它们,比如webservers。

 
  1. # Ex 2: A collection of hosts belonging to the 'webservers' group  

  2. [webservers]  

  3. 139.10.100.147  

  4. 139.20.40.90  

  5. 192.30.152.186  

  6. Ansible – Run Command on Multiple Linux Servers  

保存文件并关闭。

现在想检查连接到组webservers中指定的所有服务器的正常运行时间和用户,在上面的hosts配置文件中,只要运行ansible命令行工具,如下所示。

-a选项用于指定传递给模块的参数,-u标志指定通过SSH连接到远程服务器的默认用户名。

请注意,ansible CLI工具只允许你最多只执行一个命令。

 
  1. $ ansible webservers -a "w " -u admin 

图4:Ansible――在多台Linux服务器上运行命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691617.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

clone浅拷贝

通过一个实例对象 生成另一个对象,称为 拷贝。 需要 实现 java.lang.Cloneable 该接口是一个 标记接口 通过调用 clone() 方法,完成 对象拷贝。该方法是Object类中的方法,所有对象都继承该方法。 clone()方法是 浅拷贝,也就是 只…

Vue+vite创建项目关于vite.config.js文件的配置

Vuevite创建项目关于vite.config.js文件的配置 Vue项目创建时,我们见过vue-cli 创建项目和webpack 创建项目等方式。 现在Vue 3版本使用npm/pnpm create vuelatest 创建项目,是搭配使用vite工具构建的。 创建完成的项目,最明显的去别就是&am…

【硬件自动化软件设计及实现】如何设计并实现!

今天来聊聊关于硬件方向的自动化软件设计及实现,后面我会用实例来让我们更加深入的了解硬件自动化,首先开发工具选择的是python语言,为啥选择python语言呢,因为他的语法比较简洁,外置库非常多,反正就是对于做自动化方面很实用就对了。 1.硬件自动化测试大致分为三个阶段实…

Redis 来了,Navicat 用户炸开了锅 | 文末附免单王获奖名单

近期,Navicat 的后台热闹无比!自 2023 年 5 月 Navicat Premium 16.2 Beta 中文版上线以来,童鞋们的留言如潮水般涌来。6 月中旬,我们正式发布了 Navicat Premium 16.2 与 Navicat for Redis,赋予了Navicat 更卓越的功…

JMeter工具接口性能压力测试分析与优化

目录 前言: 一、具体测试结果如下: 二、初始应用配置调整: 三、分析解决过程: 总结: 前言: 最近公司做的项目,要求对相关接口做性能压力测试,在这里记录一下分析解决过程。 压…

[Pytorch]导数与求导

文章目录 导数与求导一. 标量 向量 矩阵 的导数二.Pytorch中的反向求导.backward()三.非标量求导 导数与求导 一. 标量 向量 矩阵 的导数 标量,向量,矩阵间求导后的形状: y\x标量x(1)向量 x(n,1)矩阵 X(n,k)标量y(1)(1)(1,n)(k,n)向量 y(m…

Unity Image/GL实现一个框选功能吧

场景准备 准备一张框选背景图 导入到unity之后,修改 Texture Type 为 Sprite,(根据图片需要)在 Sprite Editor 中 编辑 九宫格格式。图片样式的不一致,设置的九宫格格式也不一致。本例中虚线部分需要等距离平铺&…

Visual C++类的继承及类中成员的访问特性——搞懂public、protected、private

我是荔园微风,作为一名在IT界整整25年的老兵,今天来说说Visual C中类的继承及类中成员的访问特性,也就是来搞懂public、protected、private这三个东西。 很多人搞不清楚这三个东西,并且很容易弄错,其实不是学习的人的…

vr全景在线虚拟展馆节约企业成本费用

博物馆作为人们了解历史、文化和艺术的重要场所,现在可以通过VR全景技术来进行展览,让参观者身临其境地感受历史文化的魅力。本文将介绍博物馆VR全景的特点、优势,以及如何使用VR全景技术来使得博物馆的展览和教育活动更丰富。 参观者可以对内…

【Linux】权限理解

Linux权限理解 shell外壳运行原理为什么我们不是直接访问操作系统?外壳程序的意义 权限的概念与操作用户的权限如何进行Linux下用户身份的切换? 角色和文件的权限权限是什么?Linux中文件的类型是如何被确定的?权限与角色的关系权限与文件属性…

玩机搞机---修改系统固件不开机 安卓13去除系统app签名验证的几种方法

谷歌在安卓13中对系统应用添加了一层校验验证,你如果修改了系统app.那么原有的签名加载后过不去验证,会导致进不去系统卡第一屏或者进入系统后修改的app错误等等故障。 Android 13增加了新的apk签名校验机制,现在开机中它会对所有系统分区&a…

Hive中怎样创建和查询视图信息?

视图是从数据库的数据表中选取出来的数据组成的逻辑窗口,它是一个虚拟机表。引入视图后,用户可以将注意力集中在关心的数据上,如果数据来源于多个基本表结构,并且搜索条件比较复杂时,需要编写的查询语句就会比较烦琐&a…

hivesql 将数据处理成复杂json

类型一 原数据:bankid是array类型 目标数据: {"bankname": ["SPDB", "WS_HBBANK", "mytest"],"grid": [{"name": "阶段1","values": ["38.0,1.0,1.0"]}…

安全生产月评选活动-优秀的“安全之星”,塑造榜样力量

安全生产月评选活动-优秀的“安全之星”,塑造榜样力量。 推荐功能:投票 企业可以举办安全生产月评选活动,选出优秀的“安全之星”,进行内部评选,塑造榜样力量。 首先,让我们先来了解一下“安全生产月评选活…

MYSQL各种log

本章纲要 1、mysql主从复制是怎么实现的(binlog,relaylog) 2、事物执行原理是怎么保证ACID的(redolog,undolog) 一、Mysql是怎么实现主从复制的 数据库主从设计的好处: 1、实现读写分离,方便扩展&#…

MySQL 磁盘爆了,是 optimize table 的锅

2023-06-26 22:17左右,收到某系统的主库磁盘使用率告警。2023-06-26 23:02左右收到该系统的从库磁盘使用率告警。 收到告警后,登录数据库查看各表的磁盘使用。 经分析发现DB存在一个当日的备份表t_eap_sys_navigation_log_bak_20230626 ,且在…

4077:出栈序列统计

codeup【递归入门】出栈序列统计_codeup编程_战斗的咸鱼的博客-CSDN博客 #include<iostream> using namespace std; int n,sum,ans; void dfs(int out,int in,int not_in){if(outn){ans;return;}if(in>0) dfs(out1,in-1,not_in);if(not_in>0&&in<n) dfs…

Vue模板编译

文章目录 导文Vue模板编译是什么&#xff1f;模拟编译模板总结 导文 Vue框架使用了模板编译的方式来将Vue模板转换为可执行的JavaScript代码。这个编译过程在运行时由Vue的编译器完成。 在Vue中&#xff0c;模板是以HTML标记的形式编写的&#xff0c;其中可以包含Vue的特殊语法…

【探索 Kubernetes|作业管理篇 系列 14】StatefulSet 存储状态

前言 大家好&#xff0c;我是秋意零。 在上一篇中&#xff0c;我们讲解了 StatefulSet 的拓扑状态&#xff1b;我们发现&#xff0c;它的拓扑状态&#xff0c;就是顺序启动/删除、Pod 名称编号命名、将 Pod 名称设为 Hostname 名称、通过 Service 无头服务的 DNS 记录访问。 …

基于Python的海量豆瓣电影、数据获取、数据预处理、数据分析、可视化、大屏设计项目(含数据库)

目录 项目介绍研究背景国内外研究现状分析研究目的研究意义研究总体设计网络爬虫介绍豆瓣电影数据的采集数据预处理大数据分析及可视化豆瓣影评结构化分析 大屏可视化文本可视化总结每文一语 项目介绍 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博…