| src | ||
| test-ressources | ||
| .gitignore | ||
| Cargo.toml | ||
| README.md | ||
| rustfmt.toml | ||
multi-ssh
An application to upload or edit a file or perform a command on multiple servers via ssh and scp.
Configuration
Set the environment variable MSSH_SERVERS to configure the server directories of your ssh servers.
Use the MSSH_EDITOR variable to configure your editor command.
Furthermore, ensure that in your shell the following commands are set up and working:
- ssh
- scp
- ssh-agent
- ssh-add
Ergo you should be able to connect to your desired servers via ssh and be able to start an ssh agent.
Environment variable setup example for linux
export MSSH_SERVERS="crea:server/creative2,sky:sky,city:city2"
export MSSH_EDITOR="kate -b <file>" #<file> is the placeholder for the file name
Usage
For detailed usage please see:
multi-ssh --help
Command example
Delete the WorldGuard folder on crea, sky and city:
multi-ssh crea sky city -c "rm -r plugins/WorldGuard"
Upload example
Upload a new version of the MenuApi plugin and delete old versions from the servers:
multi-ssh crea sky city minez lobby -u target/MenuApi-3.4.2.jar
Upload a new version of the MineZ plugin but keep backups of the older versions:
multi-ssh minez -u target/MineZ-3.0.jar -a
The program will show you an overview of what it will be doing before actually performing any of the actions:
minez:
* renaming MineZ-2.7.jar -> MineZ-2.7.jarr
+ adding MineZ-3.0.jar
Continue [Y|n]:
For detailed usage of the upload feature see
multi-ssh -u --help
Editor example
Edit the server properties of steptech
multi-ssh steptech -e server.properties
This will create a copy of the file in your ~/Downloads directory. That directory can be changed using the -d flag.
Building from source
This is a rust project so you will need rust and cargo.
Once you have that installed, just run
cargo build --release
and you will find an executable in target/release.
Unit tests
In order for the unit tests to pass, you will need python3