超实用的批量管理工具 pssh 和 window 文件传输工具 pscp

文章目录

    • 一、概述
      • 1)pssh
      • 2)pscp
    • 二、pssh 工具安装
    • 三、pssh 命令的基本语法
    • 四、pscp 工具安装
      • 1)Windows 上安装
      • 2)Linux 系统上安装
    • 五、 pscp 命令的基本语法
      • 1)从 windows 向 linux 传文件
      • 2)从 linux 传文件到 windows

一、概述

pssh 和 pscp 都是用于在计算机网络中进行批量操作的工具,但它们分别用于执行命令和传输文件。以下是关于这两个工具的概述:

1)pssh

pssh 是 “Parallel SSH” 的缩写,用于在多台远程服务器上并行执行命令。

  • 它可以让你在一次命令中同时在多个远程服务器上执行相同的任务,如更新软件、运行脚本或收集信息。
  • 适用于集中管理和批量操作多台服务器,可以提高效率。
  • 支持设置并发度,控制同时执行连接和命令的服务器数量。

在这里插入图片描述

2)pscp

pscp 是 putty提供的一个小工具PuTTY Secure Copy client,适用于ssh连接的两台机器间安全的传输文件,通过它可以方便的从windows上的文件上传至linux服务器,也可以将linux服务器上的文件下载到windows上

  • 它类似于 scp,但特别适用于 Windows 平台。
  • 允许在命令行下进行文件传输,可以用于从本地主机向远程主机上传或下载文件。
  • 支持递归传输目录和子目录,可以通过命令行参数设置传输的选项。

在这里插入图片描述

总之,psshpscp 都是为了在计算机网络环境中进行批量操作而设计的工具。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 [email protected]:/root/

# 2、传多个文件
pscp 111.txt 222.txt [email protected]:/root/
scp /home/person/hww/abc.sql [email protected]:/home/person/hww  

# 3、传文件夹,传文件夹需要加上参数-r
pscp -r mywindir [email protected]:/root/

【温馨提示】不支持通配符。

2)从 linux 传文件到 windows

【命令用法】pscp [参数] [用户名@服务器地址]:源文件 目标文件

示例如下:

# 1、传单个文件,从Linux 机器上拉取文件
pscp [email protected]:/root/001.cpp ./

# 2、传多个文件,从Linux 机器上拉取文件
pscp [email protected]:/root/*.cpp ./

# 3、传文件夹,传文件夹需要加上参数-r
pscp -r [email protected]:/root/mydir ./

# 4、PS 指定端口
pscp -P 222 [email protected]:/root/001.cpp ./

pssh 工具用的比较多,pscp用得比较少,这两个工具的介绍就先到这里了,有任何疑问请关注我公众号:大数据与云原生技术分享,进行技术交流,如本篇文章对您有所帮助,麻烦帮忙一键三连(点赞、转发、收藏)~