pssh和pscp命令

经常会有一些需要在多台线上服务器执行同样的操作,最近学习到了几个命令可以极大的方便这方面的操作。这几条命令其实都是linux上批量执行任务的命令,都是pythonpssh包提供的命令,用法也大同小异,学习起来也很容易,但是用处却是大大的。可以通过pip install pssh来安装这个python包,安装完成后会自动提供这几个命令

pssh命令

pssh 是一个可以并行的在多个ip上执行ssh命令的程序, 主要用来在多台服务器上执行同样的命令

常用参数

-h host_filehost_file指定的文件中读取需要连接的ip信息。(常用)

-H host 从命令行读取登录主机信息 (常用)

-l user 登录用户名

-p 一次并行执行的机器个数 (常用)

-t 连接机器的超时时间

-o 标准输出打印文件

-e 标准错误打印文件

-i 每个主机执行完毕后显示标准输出和标准错误,默认不会显示。(最常用)

例子

打印ip_list.txt中每个占用8080端口的进程, 每次并发连接执行两个主机

pssh -h ip_list.txt -i -p 2 'fuser -n tcp 8080'

输出

[1] 13:58:14 [SUCCESS] 10.1.107.171
14696 14702 14703 14704 14711 14712 14714 14716 14717 14718Stderr: 8080/tcp:
[2] 13:58:16 [SUCCESS] 10.3.13.91
15072 15078 15079 15082 15085 15086 15087 15090 15094 20237Stderr: 8080/tcp:
[3] 13:58:16 [SUCCESS] 10.3.13.42
15204 15210 15211 15212 15215 15216 15221 15222 15223 15224Stderr: 8080/tcp:
[4] 13:58:18 [SUCCESS] 10.1.107.142
6935  6941  6942  6943  6946  6953  6954  6955  6956  6957Stderr: 8080/tcp:

pscp命令

pscp 命令是用来并行的将本地文件拷贝到多台服务器上的命令。参数和pssh命令基本一致

常用参数

这个命令常用参数基本和pssh一致,不同的是pssh命令中的-i参数此命令不支持,同时多了一个-r参数,用于递归拷贝文件夹

例子

将本地的hehe.txt文件拷贝到ip_list.txt中的所有机器上面的/data/hehe.txt位置

pscp -h ip_list.txt -p 2 hehe.txt /data/hehe.txt

输出

[1] 14:04:41 [SUCCESS] 10.1.107.171
[2] 14:04:41 [SUCCESS] 10.3.13.91
[3] 14:04:41 [SUCCESS] 10.1.107.142
[4] 14:04:41 [SUCCESS] 10.3.13.42

结语

除了psshpscp外,pssh包还提供了prsync命令使用rsync协议来并行将本地文件同步到不通主机,plcurl用来将不通服务器上的文件同步到本地等等。只要知道这些命令,具体用法可以在使用man查询。

    原文作者:allen哦
    原文地址: https://www.jianshu.com/p/be12e985d635
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞