summaryrefslogtreecommitdiff
path: root/README
blob: fe66791a98e3efa668bc24744e2375e3fa3b8495 (plain)
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.