flassh allows the creation of shell scripts that run commands on multiple machines via ssh.
Eventually, flassh should be able to do something like this:
srv1 := email@example.com srv2 := firstname.lastname@example.org srv: ps aux | grep httpd > srv2::~/srv1_httpd_list.txt srv1::./script1.sh | srv2::./script2.sh > local_file.txt
For now, several core features, such as I/O redirection to a file and
functionality, are missing. At the moment, something like this should work:
srv := email@example.com ps aux # list all local processes srv: ps aux # list all remote processes # run ./script.sh on the local machine, pipe into `tee file.txt` on the server ./script.sh | srv::tee file.txt
For more examples, see the syntax overview page.
Note: flassh is still in the early stages of development. Many important features are currently missing, and things may break without warning.
- Run commands on multiple ssh hosts from a single script
- Pipe stdin/stdout/stderr between processes on any host
- I/O redirection to files on any local or remote host
- Built-in scp-like functionality
- Full compatibility with bash
Requires CMake 3.1+ and a C++17 compiler (gcc 7 or clang 6).
mkdir ./build cd build cmake .. make make install
flassh is MIT licensed.