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. 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 to 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.