Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zinic/tmux-cssh
Fork of the original tmux-cssh repo forked from dennishafemann/tmux-cssh
https://github.com/zinic/tmux-cssh
Last synced: 14 days ago
JSON representation
Fork of the original tmux-cssh repo forked from dennishafemann/tmux-cssh
- Host: GitHub
- URL: https://github.com/zinic/tmux-cssh
- Owner: zinic
- License: other
- Created: 2019-02-06T17:58:26.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-07-30T23:47:52.000Z (7 months ago)
- Last Synced: 2025-01-21T01:09:55.105Z (22 days ago)
- Language: Shell
- Homepage:
- Size: 57.6 KB
- Stars: 85
- Watchers: 4
- Forks: 34
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-tmux - tmux-cssh - like behavior (<a name="tools"></a>Tools and session management)
README
# tmux-cssh
_TMUX-C(luster)-SSH_## Description
_tmux_ is a _terminal multiplexer_, like e.g. _screen_, which gives you a possibility to use multiple virtual terminal session within one real terminal session. _tmux-cssh_ (tmux-cluster-ssh) sets a comfortable and easy to use functionality, clustering and synchronizing virtual _tmux_-sessions, on top of _tmux_. No need for a x-server or x-forwarding. _tmux-cssh_ works just with _tmux_ and in an low-level terminal-environment, like most server do.
## Dependencies / Installation
```
$ apt-cache search --names-only tmux
tmux - Terminal-Multiplexer
```... under _debian_-based systems:
```
$ sudo apt-get install tmux
```## Usage / Example
First, take a look at the help- and syntax-texts:
```
$ tmux-cssh --help
```You can connect to a single server, with a single connection-data:
```
$ tmux-cssh -sc my-user-name@my-own-server
```You can connect multiple server, with different connection-data:
```
$ tmux-cssh -sc my-user-name@my-own-server -sc second_user@second_server
```You can connect to multiple server, with a single connection-data:
```
$ tmux-cssh -u my-user-name -sc my-own-server -sc second_server
```You can connect to multiple server, the short way:
```
$ tmux-cssh -u my-user-name my_server 1.2.3.4 11.22.33.44 my_second_server my_third_server my_and_so_on_server
```You can load predefined parameters settings from your user-home-settings-file ~/.tmux-cssh.
```
$ tmux-cssh -cs [dev\|test\|productive]_servers
```If you want to just open your multiple server in a grid, but don't want every keystrokes shared around you can add the parameter for "don't synchronize panes".
```
$ tmux-cssh -cs [dev\|test\|productive]_servers -ds
```It is possible to use different tmux layouts, default is tiled:
```
$ tmux-cssh -tl even-vertical -u my-user-name my_server 1.2.3.4 11.22.33.44 my_second_server my_third_server my_and_so_on_server
```## User-Home-Settings-file ~/.tmux-cssh
This file is located in the user home directory, from _tmux-cssh_-calling user, and includes predefined parameters in a single line.
```
dev_servers:-sc 10.10.1.1
test_servers:-sc 10.20.1.1 -sc 10.20.1.2
productive_servers:-sc 10.30.1.1 -sc 10.30.1.2 -sc 10.30.1.3
```Each line can be analysed into to values _key_ and _parameters_, seperated by a colon (:).
`[key]:[parameters]`
Using the parameters _-cs|--config-setting_ the _key_ name is search via a single string or a (grep valid) regular expression.
```
$ tmux-cssh -cs [dev\|test\|productive]_servers
... or ...
$ tmux-cssh -cs server[1-9]
```### Multiple -cs
With support of multiple -cs parameters you can now be more flexible.
```
clients:-sc 1.1.1.1 -sc 1.1.1.2
servers:-sc 10.10.10.1 -sc 10.10.10.2
all:-cs clients -cs servers
``````
$ tmux-cssh -cs clients
$ tmux-cssh -cs servers
$ tmux-cssh -cs clients -cs servers
$ tmux-cssh -cs all
```## Combine parameters
_tmux-cssh_ adds all given parameters to it's environment before calling the final _tmux_-session. So that means all parameters can be combined in each way.
**Call**
```
$ tmux-cssh -f /tmp/temp-server-hosts -cs "fixed_dev_server\|auth_user"
```**Host file -f /tmp/temp-server-hosts**
```
10.10.1.1
dev_server_1
```**Config-Settings name fix_dev_server in ~/.tmux-cssh**
```
auth_user:-u me_as_an_auth_user
fix_dev_server:10.10.1.10 10.10.1.20 10.10.1.30
```**Finally tmux-cssh works like if you called ...**
```
$ tmux-cssh -u me_as_an_auth_user -sc 10.10.1.1 -sc dev_server_1 -sc 10.10.1.10 -sc 10.10.1.20 -sc 10.10.1.30
```