超实用的批量管理工具 pssh 和 window 文件传输工具 pscp
一、概述
pssh 和 pscp 都是用于在计算机网络中进行批量操作的工具,但它们分别用于执行命令和传输文件。以下是关于这两个工具的概述:
1)pssh
pssh 是 "Parallel SSH" 的缩写,用于在多台远程服务器上并行执行命令。
- 它可以让你在一次命令中同时在多个远程服务器上执行相同的任务,如更新软件、运行脚本或收集信息。
- 适用于集中管理和批量操作多台服务器,可以提高效率。
- 支持设置并发度,控制同时执行连接和命令的服务器数量。
2)pscp
pscp
是 putty提供的一个小工具PuTTY Secure Copy client,适用于ssh连接的两台机器间安全的传输文件,通过它可以方便的从windows上的文件上传至linux服务器,也可以将linux服务器上的文件下载到windows上
- 它类似于 scp,但特别适用于 Windows 平台。
- 允许在命令行下进行文件传输,可以用于从本地主机向远程主机上传或下载文件。
- 支持递归传输目录和子目录,可以通过命令行参数设置传输的选项。
总之,pssh
和 pscp
都是为了在计算机网络环境中进行批量操作而设计的工具。pssh 用于在多台远程服务器上并行执行命令,而 pscp 用于在 Windows 主机和远程主机之间传输文件。无论是在管理服务器还是在文件传输方面,这两个工具都可以提高效率并简化任务。
二、pssh 工具安装
sudo yum install pssh
请注意,安装命令可能会因操作系统版本和软件库的不同而有所变化。
如果你需要手动下载和安装 pssh,可以访问 pssh 项目的官方源代码库或发布页面。你可以在以下链接中找到相关信息:
- pssh GitHub 项目页面:https://github.com/lilydjwg/pssh
- pssh 发行页面:https://pypi.org/project/pssh/
三、pssh 命令的基本语法
pssh -h hosts.txt -l username -A -i "your-command"
在 pssh 命令中,有许多参数可以帮助你控制并定制你在远程服务器上执行的任务。以下是一些常见的 pssh 命令参数的讲解:
-
-h <hosts-file>
:指定包含要连接的远程服务器主机名或 IP 地址的文本文件。每行一个主机。 -
-l <username>
:指定用于 SSH 连接的用户名。 -
-A
:启用交互式模式,要求输入 SSH 密码。如果你使用公钥认证,可以省略这个参数。 -
-i --inline <command>
:每个服务器的内联聚合输出和错误,-i
可以省略,省略则没有远程命令执行的输出。需要将命令用引号括起来。 -
-p <parallel-count>
:指定并行连接的数量。这决定了同时连接的远程服务器数目。默认的并发数(也称为并发度)通常是 32。 -
-O <option>
:设置 SSH 连接选项。可以使用多次以设置不同的选项。 -
--timeout=<seconds>
:设置 SSH 连接的超时时间,以秒为单位。 -
-v
:增加命令的详细输出。可以使用多次以获得更详细的信息。 -
-t <timeout>
:设置每个远程命令的超时时间,以秒为单位,默认的超时时间是2
秒。(0 = no timeout) -
--help
:显示帮助信息,列出所有可用的参数和其用法。
这些是一些常见的参数,还有其他更多的参数和选项可用于定制 pssh 命令的行为。为了获得详细的参数说明和示例,你应该查阅 pssh 的官方文档或使用命令行中的 --help 参数来获取帮助信息。不同版本的 pssh 可能会有略微不同的参数和功能,所以最好参考最新的文档来获得准确的信息。
示例用法:
# pssh -h hosts.txt -l myuser [-A] -i "sudo yum update && sudo yum upgrade -y"
pssh -h iplist -l root -i "hostname"
# - `-p <parallel-count>`:指定并行连接的数量。这决定了同时连接的远程服务器数目。默认的并发数(也称为并发度)通常是 32。
pssh -h iplist -l root -p 10 -i "hostname"
# -o,将结果输出对应的目录下,每个主机一个独立的文件,例如:cat /tmp/outdir/local-168-182-110
pssh -h iplist -l root -o /tmp/outdir -i "hostname"
# `-O <option>`:设置 SSH 连接选项。可以使用多次以设置不同的选项。
# 例如,你可以使用 -O "StrictHostKeyChecking=no" 来禁用 SSH 主机密钥的严格检查。
pssh -h iplist -l root -O "StrictHostKeyChecking=no" -o /tmp/outdir -i "hostname"
在这个示例中,pssh
命令将从 hosts.txt
文件中读取主机列表,在用户名 "myuser"
下登录,交互式地要求输入密码,然后在所有远程服务器上执行给定的命令(更新和升级软件包)。
需要注意的是,在使用之前,你需要在系统上安装 pssh。它通常可以通过 Linux 发行版的包管理器进行安装。另外,pssh 可能还有更高级的功能和选项,超出了本文所介绍的内容,所以请务必查阅文档,全面了解其功能。
四、pscp 工具安装
pscp
是 PuTTY 工具集的一部分,通常你需要安装整个 PuTTY 工具集,而不仅仅是 pscp。以下是在不同操作系统上安装 PuTTY 工具集的基本步骤:
1)Windows 上安装
前往 PuTTY 官方网站的下载页面:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
下载 PuTTY 安装程序,通常是一个 .msi 文件。
运行下载的安装程序,按照安装向导的指示进行安装。安装过程中可能会询问你是否要安装其他 PuTTY 工具,例如 pscp、plink 等。请确保选择安装这些附加工具。
2)Linux 系统上安装
sudo yum install putty
五、 pscp 命令的基本语法
以下是一些常见的 pscp 命令参数的讲解:
命令用法: pscp [参数] 源文件1 [源文件2…] [用户名@]服务器地址:目标文件
命令用法: pscp [参数] [用户名@服务器地址]:源文件 目标文件
以下是一些常见的 pssh 命令参数的讲解:
-r
递归拷贝目录-P port
指定服务器的端口-pw passw
指定密码-i key
如果有putty的ssh登录文件ppk可以在此指定
1)从 windows 向 linux 传文件
【命令用法:】pscp [参数] 源文件1 [源文件2…] [用户名@]服务器地址:目标文件
示例如下:
# 1、传单个文件
pscp 111.txt root@192.168.192.110:/root/
# 2、传多个文件
pscp 111.txt 222.txt root@192.168.192.110:/root/
scp /home/person/hww/abc.sql root@192.168.1.1:/home/person/hww
# 3、传文件夹,传文件夹需要加上参数-r
pscp -r mywindir root@192.168.192.110:/root/
【温馨提示】不支持通配符。
2)从 linux 传文件到 windows
【命令用法】pscp [参数] [用户名@服务器地址]:源文件 目标文件
示例如下:
# 1、传单个文件,从Linux 机器上拉取文件
pscp root@192.168.192.110:/root/001.cpp ./
# 2、传多个文件,从Linux 机器上拉取文件
pscp root@192.168.192.110:/root/*.cpp ./
# 3、传文件夹,传文件夹需要加上参数-r
pscp -r root@192.168.192.110:/root/mydir ./
# 4、PS 指定端口
pscp -P 222 root@192.168.192.110:/root/001.cpp ./
pssh 工具用的比较多,pscp用得比较少,这两个工具的介绍就先到这里了,有任何疑问请关注我公众号:大数据与云原生技术分享
,进行技术交流,如本篇文章对您有所帮助,麻烦帮忙一键三连(点赞、转发、收藏)~