1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
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 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.
|