Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/perry-mitchell/stdout-collector
Stream stdout from any number of terminal applications to one server for display
https://github.com/perry-mitchell/stdout-collector
cli client-server stdio stdio-stream stdout stdout-stream
Last synced: about 2 months ago
JSON representation
Stream stdout from any number of terminal applications to one server for display
- Host: GitHub
- URL: https://github.com/perry-mitchell/stdout-collector
- Owner: perry-mitchell
- License: mit
- Created: 2018-03-22T11:40:15.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-03-24T15:26:29.000Z (over 6 years ago)
- Last Synced: 2024-10-04T19:49:24.464Z (3 months ago)
- Topics: cli, client-server, stdio, stdio-stream, stdout, stdout-stream
- Language: JavaScript
- Size: 4.13 MB
- Stars: 6
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# stdout collector
> Collect and route stdout between computers and terminals[![Build Status](https://travis-ci.org/perry-mitchell/stdout-collector.svg?branch=master)](https://travis-ci.org/perry-mitchell/stdout-collector)
![2 terminals into 1](https://raw.githubusercontent.com/perry-mitchell/stdout-collector/master/stdout-collector.gif)
## About
Having applications running in many terminals and machines can be troublesome to monitor. Setting up log sending/fetching may be a bit too tedious a task for some projects. `stdout-collector` provides an intermediate solution by allowing for easy redirection of application `stdout` streams to one destination.Using this application it is possible to route the `stdout` from many different applications on different machines to one terminal on another. This library provides 2 commands:
* `stdsend` - Send `stdout` to a destination receiver
* `stdrecv` - Receive `stdout` from another machine (or several machines)## Usage
To set up a receiver:```shell
stdrecv
```This executes the receiving server application which listens for clients.
To set up a sending utility:
```shell
./some-program-with-output.sh | stdsend 192.168.0.1 --name="MyApp"
```### stdrecv arguments
The follow arguments can be provided to `stdrecv`:| Argument | Required | Description |
|-------------------------|----------|--------------------------------------------------|
| `--port=` | No | Override the listen port. Default: `8888`. |### stdsend arguments
The follow arguments can be provided to `stdsend`:| Argument | Required | Description |
|-------------------------|----------|--------------------------------------------------|
| (address/addresses) | Yes | Destination addresses, including port if not the default. Multiple addresses separated by a space. |
| `--name=` | No | Set the client name. For display, max 5 characters (trimmed otherwise). |#### Destination addresses
You can specify 1 or more destination addresses. All of the following are valid:* `192.168.0.1` (port: `8888`)
* `localhost:3333`
* `http://server.com` (port: `8888`)## Potential issues
Some CLI apps do funny things to their output in terms of buffering. Some times you can get around this by using `stdbuf`. For example, some cryptocurrency miners don't buffer by line, which can be fixed by running:```shell
stdbuf -oL -eL ./miner | stdsend 192.168.0.100 --name="Rig01"
```