pssh-rs is a parallel ssh tool written in rust.

Example

  1. run date command on 192.168.56.101 and 192.168.56.102: bash ./pssh-rs -h "192.168.56.101;192.168.56.102" -uroot -pmypassword -c 'date'

the hosts can be separated by comma, semicolon or spaces.

  1. using toml file to config hosts, suppose we have the following hosts.toml file:

```bash $ cat ./hosts.toml username = "root" password = "aaa" port = 22 hosts = [ "192.168.56.101", "192.168.56.102" ]

[nginx] username = "ubuntu" password = "bbb" port = 22 hosts = [ "192.168.57.101", "192.168.57.102" ]

[[nginx.host]] host = "192.168.57.103" password = "ccc" port = 36000

[[nginx.host]] host = "192.168.57.104" username = "root" password = "ddd" port = 36000 ```

execute date on all nginx hosts

bash ./pssh-rs -t hosts.toml -s nginx -c 'date'

note that the username of 192.168.57.103 is ubuntu, which inherited from its parent nginx section.

Install

just run cargo install pssh-rs to install.

Building

pssh-rs can be built with cargo build --release, or using the following command to build statically:

bash sudo apt install musl-tools -y rustup target add x86_64-unknown-linux-musl cargo build --target=x86_64-unknown-linux-musl --release