tree老师:PSSH自动化运维实战

pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的。使用是必须在各个服务器上配置好密钥认证访问。

pssh是用python来写的一个管理工具,管理几万台服务器,就是因为使用各式各样的工具。

如果服务器超过50台,上百台,就不能再用shell来写个for循环来执行了,这时候就会用到pssh.

pssh 包安装 5 个实用程序:

pssh 在多个主机上并行地运行命令。

pscp 把文件并行地复制到多个主机上。

prsync 通过 rsync 协议把文件高效地并行复制到多个主机上。

pslurp 把文件并行地从多个远程主机复制到中心主机上。

pnuke 并发地在多个远程主机上杀死进程。

PSSH相关参数:

pssh在多个主机上并行地运行命令

-h 执行命令的远程主机列表,文件内容格式[[email protected]]host[:port]

如[email protected]:229

-H 执行命令主机,主机格式 [email protected]:port

-l 远程机器的用户名

-p 一次最大允许多少连接

-P 执行时输出执行信息

-o 输出内容重定向到一个文件

-e 执行错误重定向到一个文件

-t 设置命令执行超时时间

-A 提示输入密码并且把密码传递给ssh(如果私钥也有密码也用这个参数)

-O 设置ssh一些选项

-x 设置ssh额外的一些参数,可以多个,不同参数间空格分开

-X 同-x,但是只能设置一个参数

-i 显示标准输出和标准错误在每台host执行完毕后

安装部署:

wget  http://www.theether.org/pssh/pssh-1.4.3.tar.gz   [[email protected] ]# tar -zxvf pssh-1.4.3.tar.gz

[[email protected] test]# cd pssh-1.4.3

[[email protected] pssh-1.4.3]# ls

AUTHORS BUGS       COPYING  INSTALL  PKG-INFO       psshlib    setup.py

bin     ChangeLog  doc      Makefile pssh.egg-info  setup.cfg  test

[[email protected] pssh-1.4.3]# python setup.py install

pssh的版本会影响是否可以传密码,-A是传密码的

1.4.3的版本没有传密码的功能

建立ssh秘钥:

[[email protected] test]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

ca:6a:0a:55:cf:55:91:f7:b9:fd:71:11:62:95:cd:7d [email protected]

The key‘s randomart image is:

+--[ RSA 2048]----+

|          oo  .o+|

|         .. .o oE|

+-----------------+

[[email protected] test]# ssh-copy-id -i ~/.ssh/id_rsa.pub  [email protected]

[[email protected] test]# ssh-copy-id -i ~/.ssh/id_rsa.pub  [email protected]

[[email protected] test]# cat list.txt

192.168.1.63

192.168.1.64

远程执行命令:

[[email protected] test]# pssh -i -h list.txt ‘df -h‘

[1] 11:33:40 [SUCCESS] 192.168.1.64 22

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2        18G  3.8G  13G  23% /

tmpfs          1004M   76K 1004M  1% /dev/shm

/dev/sda1       194M   34M 151M  19% /boot

/dev/sr0        3.6G  3.6G    0 100% /mnt

[2] 11:33:40 [SUCCESS] 192.168.1.63 22

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2        18G  6.2G  11G  38% /

tmpfs           932M  224K 931M   1% /dev/shm

/dev/sda1       190M   41M 140M  23% /boot

/dev/sr0        3.7G  3.7G    0 100% /media/CentOS_6.7_Final

远程执行:

pssh -i -h list.txt ‘df -h’

pssh -I -h list.txt ‘ifconfig’

pscp 传输文件

pscp -r -h list.txt  /root/passh /tmp

1.使用脚本远程拷贝文件,把本地文件拷贝到远程服务器

[[email protected] test]# cat a.txt

#!/bin/sh

if [ $# -ne 2 ];then

echo "Usage:scpl2r.sh localfile remotefile"

exit

fi

srcfile=$1

dstfile=$2

PSCP=/usr/local/bin/pscp

$PSCP -h /root/test/list.txt -l root $srcfile $dstfile

执行:

[email protected] test]# sh a.txt /root/test/aa  /root/

查看:

[[email protected] ~]# ls

aa

[[email protected] ~]# ls

aa

缺点:
1. 在执行命令的时候,所有的输出只能够存放到一个文件中,有些不方便
2. 必须使用密钥登录

优点:
1. 可以指定不同的登录用户
2. 支持scp功能,包括从本地拷贝文件到远端,从远端拷贝文件到本地

时间: 2024-10-26 03:54:39

tree老师:PSSH自动化运维实战的相关文章

函数计算自动化运维实战3 -- 事件触发自动创建快照

函数计算 阿里云函数计算是一个事件驱动的全托管计算服务.通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传.函数计算会为您准备好计算资源,以弹性.可靠的方式运行您的代码,并提供日志查询,性能监控,报警等功能.借助于函数计算,您可以快速构建任何类型的应用和服务,无需管理和运维.更棒的是,您只需要为代码实际运行消耗的资源付费,而代码未运行则不产生费用. 云监控 阿里云云监控为云上用户提供开箱即用的企业级开放型一站式监控解决方案.涵盖IT设施基础监控,外网网络质量拨测监控,基于事件.自定义指

pssh 自动化运维

我们平时管理几台服务器,我们可以用 ssh 这个简单高效的管理工具远程登陆进行管理,让我们的工作变的简便,快捷,然而,如果要管理成百上千台呢?即使拥有 ssh 这种简便快捷的工具,也会让人大感 头疼,那么有没有一款可以同时管理 N 台服务器的管理工具呢? 答案当然是肯定的,接下来我们就介绍一款与 ssh 有着近亲血脉的批量管理工具 PSSH PSSH 是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中比较出色的一款管理软件. *注意:要使用 PSSH 时,必须在各个服务器上配

官网服务质量检测脚本(源码来自《Python自动化运维实战》第二版刘天斯)

脚本Python版本2.7 1 #!/usr/bin/python 2 #-*- coding:utf-8 -*- 3 import os,sys 4 import time 5 import sys 6 import pycurl 7 URL="http://www.tianler.com" 8 c = pycurl.Curl() 9 c.setopt(pycurl.URL,URL) 10 c.setopt(pycurl.CONNECTTIMEOUT,5) 11 c.setopt(p

第1课 介绍大型站点运维到底是什么?应该具备哪些能力 (2)- 大型网站高并发架构与自动化运维实战(五)

  配置服务器 设置服务器IP地址 1.编辑网络配置文件 # vi /etc/sysconfig/network-scripts/ifcfg-eth0 2. 修改网络自动启动(修改文件内容) ONBOOT=yes vi命令,i编辑, 移动光标,修改no为yes, 按esc键,输入wq,保存并退出. 3. 重新启动网络服务器 # service network restart 4. 查看本机ip地址,当前是dhcp获取ip # ifconfig 10.0.2.15为本机IP地址 网络配置完成. 在

函数计算进行自动化运维专题

前言 通常来说,自动化运维有两种类型的运维方式: 定时的脚本任务, 比如定时更换云服务的 acess key secret , 定时检查 ecs 对外暴露的端口等 报警事件的紧急处理, 比如 ecs 实例发生异常重启 在传统的运维中,对于定时任务的处理通常用crontab脚本来实现,但是一旦管理的机器多了,必定会对脚本进行集中管理,这个时候对集中管理脚本的机器的可用性.脚本里面会散落密码明文等相关信息以及定时任务执行的记录都是一个很大的挑战:而对于事件驱动的报警处理,要么是通过短信报警告知运维人

企业实战脚本案例3:批量管理自动化运维100台小规模服务器

批量管理自动化运维100台小规模服务器 目录 1.脚本背景介绍 2.脚本技术需求分析 2.1 SSH免登陆认证 2.2 Expect实现key分发 2.2 PSSH家族命令详解 3.脚本功能及实现过程 3.1 脚本运行环境介绍 3.2 脚本功能介绍 3.3 脚本编写思路 3.4 脚本编写案例 一.脚本背景介绍 在企业中经常会用遇到小规模的集群服务器,在日常的管理中经常会遇到重复性的动作,如更新备上百台服务器上的ssh公钥.备份上百台服务器上的/etc/passwd配置文件等等,通常情况下采用专用

自动化运维软件设计实战——互动出版网

这篇是计算机类的优质预售推荐>>>><自动化运维软件设计实战> 编辑推荐 本书适合从事系统运维及运维开发的人员阅读. 内容简介 本书主要讲解采用OSGi技术来设计一款可插拔式的运维软件的方法与思想,为读者提供一种不一样的运维软件设计与自动化运维解决方案.本书分三部分,第一部分讲解开源社区中比较流行的三款集中化运维软件,第二部分与读者一起分享为什么要采用OSGi的技术来设计集中化运维软件,第三部分介绍设计这款运维软件所涉及的技术和一些设计思想. 作译者 吴文豪,运维开发工

Python+Django+Ansible Playbook自动化运维项目实战

Python+Django+Ansible Playbook自动化运维项目实战网盘地址:https://pan.baidu.com/s/1bZ1Ju0mld3KLZawdxZ7m6Q 密码: 5k9x备用地址(腾讯微云):https://share.weiyun.com/5E7aUWv 密码:wzfdrn 本课程将带你从项目实践角度出发,围绕自动化资产扫描和发现.Ansible自动化任务执行的内容展开,让运维更简单.更高效,Hold住高薪! 适合人群:如果你是一位运维党,对Python运维自动化

云计算开发教程:Python自动化运维开发实战流程控制

今天这篇文章是给大家分享一些云计算开发教程,今天讲解的是:Python自动化运维开发实战流程控制. Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false. if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句-- else: 执行语句-- 其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范