Motivation ---------- Seen GNU 'parallel' and 'pssh', 'mssh'. I wanted something written in plain C for managing my RaspberryPi cluster. Other tools ----------- PSsh ---- http://code.google.com/p/parallel-ssh/ PSsh is Python, startup time of Python is not fast, especially not on a Rasperry Pi B serving as master of a Pi cluster. :-) Pssh has very nice tools and usage, we will try to copy from there. Pssh writes output files into directories, this is a nice feature, but I think it should be optional not mandatory and the default should be stdout/stderr. Pssh shows results at the very end, I want to be able to monitor progress of the commands being executed. Pssh doesn't seem to do non-blocking connections and authentication in parallel. GNU parallel ------------ Way complex, good for batches. I think cssh should not try to compete with it. GNU parallel is written in Perl. Dsh --- http://www.netfort.gr.jp/~dancer/software/dsh.html Distributed or Dancer's shell, written in C. dssh with -M -c -r ssh is basically the same what we are doing. dssh has no interactive mode. Clusterit --------- http://www.sourceforge.net/projects/clusterit Also written in C. Set of tools for simple cluster-excution, focus on compilation and shell. Cssh ---- https://www.putorius.net/cluster-ssh.html Clush ----- https://clustershell.readthedocs.io/en/latest/tools/clush.html Why libssh and not libssh2 -------------------------- Not a clue, really. I think both are nice libraries. References ---------- I want to list all influences, code snippets and other projects which had an effect on my project: [1] http://mrjones69ceu.blogspot.ch/2014/01/embedding-ssh-service.html A blog on almost the thing I want, no finished code found though. [2] https://www.libssh.org/: all basic SSH session functions and SCP and other helper functions. [3] http://sites.dparrish.com/libcli: Cisco style CLI interface for the interactive mode. So we can actually "log in" to the cluster. [4] http://code.google.com/p/parallel-ssh/ PSSH Tools in Python. The tools we want to mimic but in C. [5] http://www.gnu.org/software/parallel/ GNU parallel: very nice and powerfull, we want something simpler. [6] https://github.com/badoo/libpssh Libary for multiple SSH connections using libevent and libssh2. A little bit too complicated for my taste, I prefer direct asynchronous I/O without an abstraction library like libevent. Also I prefer to use libssh unpatched. [7] https://github.com/doches/progressbar For the SCP mode showing what cscp is doing is really nice, a progress bar library like this one is handy, must support multiple progress bars on multiple lines in parallel.