`
dcj3sjt126com
  • 浏览: 1868348 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

dsh:分布式 shell

阅读更多

dsh 简单说来就是可以同时通过 ssh 来控制多台机器。在一台机器上面安装,然后在需要控制的机器上添加上认证的公钥,建立了信任,然后在安装了dsh的机器上面用dsh来执行命令,就会在配置好的机器列表中全部都执行一遍, 再将结果返回回来

 

在 dsh 的配置文件里面可以把机器分组,然后在 dsh 的选项里面指定对那个组进行操作,比如

dsh -g www -c “w”

将对所有输入 www 组的机器执行 w 命令。

执行命令可以并行执行,也可以串行执行。并行执行是把命令同时发给所有机器,串行执行是一个一个机器的执行。等上一个机器执行完了再执行下一个机器。

这个命令对维护多个机器的同学应该有用。不用老是用 for 循环了。

 

官网:http://www.netfort.gr.jp/~dancer/software/dsh.html.en

 

对需要控制的服务器添加ssh认证信息的方法:

scp ~/.ssh/id_rsa.pub root@server:/root/.ssh/authorized_keys 

 

创建主机列表:

vi webapp.txt
192.168.56.11
192.168.56.12
192.168.56.13
192.168.56.14

配置SSH信任关系

mkdir ~/.ssh
ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub 192.168.56.11:/root/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub 192.168.56.12:/root/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub 192.168.56.13:/root/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub 192.168.56.14:/root/.ssh/authorized_keys

或者通过脚本批量拷贝

ip=192.168.56.
for i in $(seq 11 14)
do
ssh $ip$i -C mkdir /root/.ssh
scp ~/.ssh/id_rsa.pub $ip$i:/root/.ssh/authorized_keys
done

或者通过读取文件的脚步拷贝

for i in `cat webapp.txt`
do
ssh $i -C mkdir /root/.ssh
scp ~/.ssh/id_rsa.pub $i:/root/.ssh/authorized_keys
done

 

 dsh批量管理linux服务器

 
一,安装dsh
 
mkdir dsh
cd dsh
wget http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.9.tar.gz
tar zxvf libdshconfig-0.20.9.tar.gz
cd libdshconfig-0.20.9
./configure && make
sudo make install
cd ..
 
wget http://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.25.9.tar.gz
tar zxvf dsh-0.25.9.tar.gz
cd dsh-0.25.9
./configure && make
sudo make install
 
ln -s /usr/local/lib/libdshconfig.so.1 /lib/
#reload lib path
/sbin/ldconfig
 
[root@localhost ~]# which dsh
/usr/local/bin/dsh
 
二,用法介绍:
 
[root@china-channel ~]# dsh –-help
Distributed Shell / Dancer’s shell version 0.25.9
Copyright 2001-2005 Junichi Uekawa,
distributed under the terms and conditions of GPL version 2
 
-v –verbose                   Verbose output  详细模式输出
-q –quiet                     Quiet  安静模式输出
-M –show-machine-names      Prepend the host name on output显示被控制主机的hostname
-H –hide-machine-names      Do not prepend host name on output  不显示主机名(default)
-i –duplicate-input            Duplicate input given to dsh
-b –bufsize                   Change buffer size used in input duplication
-m –machine [machinename]     Execute on machine 主机名
-n –num-topology              How to divide the machines
-a –all              Execute on all machines  主机列表,默认列表在/root/.dsh/machines.list
-g –group [groupname]  Execute on group member 指定主机名组,主机名组在/root/.dsh/group/
-f –file [file]               Use the file as list of machines  选择主机列表
-r –remoteshell [shellname]   Execute using shell (rsh/ssh)  指定远程工具,默认为rsh
-o –remoteshellopt [option]   Option to give to shell
-h –help                      Give out this message
-w –wait-shell                Sequentially execute shell 指定顺序运行,默认是并行
-c –concurrent-shell          Execute shell concurrently
-F –forklimit [fork limit]    Concurrent with limit on number
-V –version                   Give out version information
三,创建控制的主机列表
 
[root@china-channel ~]# cat /root/.dsh/machines.list
218.85.1.2
218.85.1.3
[root@china-channel ~]# cat /root/.dsh/group/umail 
218.85.1.2
218.85.1.3
 
四,配置ssh无密码登陆
 
[root@china-channel ~]# ssh-keygen -t rsa
回车三次。
在/root/.ssh目录下生成id_rsa,id_rsa.pub
把id_rsa.pub拷贝到被控制机的/root/.ssh/目录下:
 
[root@mail176 .ssh]#mv id_rsa.pub authorized_keys
[root@mail176 .ssh]#chmod 600 authorized_keys
 
对于有多个不同控制机的,可以通过cat id_rsa.pub >>authorized_keys 追加的形式
 
五,应用举例:
 [root@china-channel AIMstor]# dsh -M -r ssh -a -- free
218.85.1.2:           total       used       free     shared    buffers     cached
218.85.1.2: Mem:       8168272    8138584      29688   0   197176    3516140
218.85.1.2: -/+ buffers/cache:    4425268    3743004
218.85.1.2: Swap:     16386260    1011732   15374528
218.85.1.3:           total       used       free     shared    buffers     cached
218.85.1.3: Mem:   8168272    8103304      64968      0    543324    3085280
218.85.1.3: -/+ buffers/cache:    4474700    3693572
218.85.1.3: Swap:     16386260    1039780   15346480
 
[root@china-channel AIMstor]# dsh -M -r ssh -a -- free|grep /cache
218.85.1.2: -/+ buffers/cache:    4423528    3744744
218.85.1.3: -/+ buffers/cache:    4462684    3705588
 
[root@china-channel AIMstor]# dsh -M -r ssh -a -- df -h          
218.85.1.2: Filesystem            Size  Used Avail Use% Mounted on
218.85.1.2: /dev/sda3              48G   31G   15G  67% /
218.85.1.2: /dev/sda6             792G  377G  375G  51% /bk
218.85.1.2: /dev/sda2              48G  4.7G   41G  11% /opt
218.85.1.2: /dev/sda1             251M   17M  222M   7% /boot
218.85.1.2: /dev/sdb1             2.7T 1008G  1.6T  39% /mail
218.85.1.2: tmpfs                 3.9G     0  3.9G   0% /dev/shm
218.85.1.3: Filesystem            Size  Used Avail Use% Mounted on
218.85.1.3: /dev/sda3              48G   35G   11G  77% /
218.85.1.3: /dev/sda6             792G  215G  537G  29% /bk
218.85.1.3: /dev/sda2              48G  5.7G   40G  13% /opt
218.85.1.3: /dev/sdb1             2.7T  812G  1.8T  32% /mail
218.85.1.3: /dev/sda1             251M   17M  222M   7% /boot
218.85.1.3: tmpfs                 3.9G     0  3.9G   0% /dev/shm
 
注:
dsh -M -r ssh -a --  如果需要执行的命令比较复杂的话,将后面的所有命令用单引号引起来,例如:
dsh -M -r ssh -a -- 'echo "abc" >> /root/test.txt'
 
 
------------------------------------------------------
 
dsh 的安装使用

dsh能帮助我们方便的管理多台主机,免去了我们写循环的麻烦,而且一些集群管理工具需要用到dsh。

在centOS5下安装

直接运行脚本

 

#!/bin/bash

# Build and install the library first
wget http://www.netfort.gr.jp/~dancer/software/downloads/libdshconfig-0.20.13.tar.gz
tar xzvf libdshconfig-0.20.13.tar.gz
cd libshconfig-0.20.13
./configure $ make
sudo make install
# Then build and install the utility
cd ..
wget http://www.netfort.gr.jp/~dancer/software/downloads/dsh-0.25.9.tar.gz
tar xzvf dsh-0.25.9.tar.gz
cd dsh-0.25.9
./configure
make
sudo make install

#reload lib path
/sbin/ldconfig

然后建立一个群组

vi ~/.dsh/group/temp

server1

server2

server3

 
简单使用:

dsh -g temp --r ssh -- df -h

-g 制定group-a 全部主机默认只用~/.dsh/machines.list

-M是列出主机名-r是指定连接方式

分享到:
评论

相关推荐

    LIS3DSH:LIS3DSH 加速度计 Arduino 库

    **LIS3DSH 加速度计 Arduino 库详解** LIS3DSH 是一款由意法半导体(STMicroelectronics)生产的三轴数字加速度计,它能够测量在三个正交轴上的线性加速度。这款传感器广泛应用于各种物联网、机器人、运动追踪以及...

    Activiti6.0工作流引擎springboot项目代码

    将Activiti与SpringCloud结合,可以在分布式系统中实现流程的协调和服务间的协作,提高系统的可扩展性和容错性。 6. **项目实践**: 压缩包文件"activiti-6.0.0"可能包含了一个完整的Activiti 6.0工作流引擎与...

    dsh (the distributed shell)-开源

    **分布式shell(dsh)——开启集群管理新篇章** 分布式shell(dsh)是一个高效且实用的开源工具,专为在多台计算机上并行执行命令而设计。它的出现极大地简化了系统管理员的工作,尤其是在管理和维护beowulf类型的...

    分布式命令维护Linux节点.pdf

    本文主要介绍了一种名为dsh(Distributed Shell)的小型软件,它能够有效地解决在多个Linux工作站上同时执行命令或修改配置文件的问题,从而显著减轻手工维护的工作量。 dsh的核心功能是在整个节点集合或特定节点组...

    LIS3驱动.rar_LIS3DSH 数据_LIS3DSH驱动_LIS驱动_lis3dsh hal驱动_lis3dsh驱动代码

    LIS3DSH的驱动库(已生成BIN文件)和官方英文数据手册资料

    LIS3DSH加速度传感器芯片资料

    ### LIS3DSH 加速度传感器芯片知识点解析 #### 一、概述 LIS3DSH是一款超低功耗、高性能的三轴线性加速度传感器,属于“nano”系列,内置可编程的状态机来实现自主应用。该传感器适用于多种应用场景,如运动控制...

    《基于STM32和LIS3DSH的高精度计步器设计》_LIS3DSH_2016_核心.pdf

    本文介绍了一种基于STM32微控制器和LIS3DSH加速度传感器的高精度计步器设计方法。文章首先回顾了传统计步器设计的历史与局限性,然后详细阐述了高精度计步器的设计原理、硬件电路结构及软件算法实现。以下是根据文档...

    STM32例程Tutorial 27 - Motion 3-Axis Accelerometer LIS3DSH.7z

    本教程“STM32例程 Tutorial 27 - Motion 3-Axis Accelerometer LIS3DSH”将深入探讨如何在STM32平台上与LIS3DSH三轴加速度计进行通信并处理其数据。 LIS3DSH是ST Microelectronics生产的一款高性能、低功耗的三轴...

    lis3dh与lis3dsh官方驱动及例子.rar

    本资源为ST公司官方LIS3DH 、LIS3DSH驱动及例子。资源解压后的driver文件夹可直接在你的工程中应用:The driver is platform independent, you need only to complete the two functions for write and read from ...

    lis3dsh_STdC.zip

    标题中的"lis3dsh_STdC.zip"表明这是一个压缩文件,其中可能包含与"lis3dsh"相关的技术文档、固件、驱动程序或软件。"lis3dsh"通常指的是意法半导体(STMicroelectronics)生产的LIS3DSH三轴数字加速度计。这个设备...

    LIS3DSH.rar_lis3dsh_simple_stm32f4

    标题中的"LIS3DSH.rar_lis3dsh_simple_stm32f4"表明这是一个与LIS3DSH三轴加速度传感器相关的项目,它使用了简单的SPI(Serial Peripheral Interface)驱动,并且是针对STM32F4系列微控制器的。这个项目可能包含了...

    汽车行业字母简写含义大全.docx

    * DSH:动态操纵系统 悬架系统 * CNG:压缩天然气 * CSC:全国汽车超级短道拉力赛 * CDC:连续减振控制 * CTS:水温传感器 * CCD:连续控制阻尼系统 动力传输 * AOD:电子控制按需传动装置 * ARTS:自适应限制...

    distributed shell (yadsh)-开源

    分布式Shell(yadsh)是一种开源工具,设计用于在多台计算机上并行执行命令,极大地提高了系统管理员在大规模集群中的工作效率。这个工具是IBM PSSP 3.5版本的dsh的改进和替代,它摒弃了原本对SP2特定节点构造的依赖...

    LIS3DH 资料_完整例程_手册_电路等,lis3dsh,C/C++

    **LIS3DH 传感器详解** LIS3DH 是一款由意法半导体(STMicroelectronics)制造的三轴加速度计,广泛应用于运动检测、姿态测量、振动分析以及物联网设备中。这款传感器能够精确地测量在X、Y、Z三个轴上的线性加速度...

    stm32-lis3dsh-main.zip

    LIS3DSH是一款由意法半导体(STMicroelectronics)生产的超低功耗、高性能的三轴线性加速度传感器。它属于“nano”系列,并且带有嵌入式状态机,能够实现自主应用的编程。以下是LIS3DSH的一些主要特性和应用场景: ...

    STM32-Lib-LIS3DSH-Accelerometer-main

    LIS3DSH是一款由意法半导体(STMicroelectronics)生产的超低功耗、高性能的三轴线性加速度传感器。它属于“nano”系列,并且带有嵌入式状态机,能够实现自主应用的编程。以下是LIS3DSH的一些主要特性和应用场景: ...

    a_GildiaTitul3DSh

    【标题】"a_GildiaTitul3DSh" 是一款3D效果的字体,它在设计上强调了立体感和视觉冲击力,适合用于标题、海报等需要突出重点的场合。这款字体可能是由设计师精心制作,以提供一种独特且引人注目的文字表现形式。 ...

    基于仿真的激光线宽 (DSH) 拟合程序.zip

    《激光线宽(DSH)拟合程序:MATLAB实现与应用》 在现代光学和光电子学领域,激光线宽的测量与分析是一项至关重要的任务。激光器的线宽不仅影响其性能,如功率稳定性、单色性以及探测灵敏度,而且在科学研究、精密...

    Zojirushi象印VE真空保温省电电热水瓶CV-DSH40C&50C说明书.pdf

    Zojirushi象印品牌说明书

    LIS3DSH_ver1.1.rar_LIS3DH_LIS3DSH pudn_lis3dsh_lis3dsh中文资料_lo

    lis3dh加速度传感器资料 疯狂下载吧

Global site tag (gtag.js) - Google Analytics