51 lines
1.1 KiB
Markdown
51 lines
1.1 KiB
Markdown
# csc — Cluster SSH Command
|
|
|
|
Run a command over SSH on a group of hosts, with colored per-host output and progress tracking.
|
|
|
|
## Install
|
|
|
|
Copy `csc` somewhere in your `$PATH` and make it executable:
|
|
|
|
```bash
|
|
cp csc ~/.local/bin/csc
|
|
chmod +x ~/.local/bin/csc
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Host groups are plain text files under `~/.config/csc/` (one hostname per line, `#` comments supported):
|
|
|
|
```
|
|
# ~/.config/csc/webservers
|
|
web01.example.com
|
|
web02.example.com
|
|
# web03.example.com (disabled)
|
|
```
|
|
|
|
## Usage
|
|
|
|
```
|
|
Usage: csc [OPTION]... [COMMAND]
|
|
-h show help
|
|
-v enable verbose mode
|
|
-c specify config dir, default is ~/.config/csc
|
|
-g specify group
|
|
-d enable dry run mode
|
|
```
|
|
|
|
```bash
|
|
csc -g webservers uptime
|
|
csc -g webservers -d "apt-get upgrade -y" # dry run: shows commands, no ssh
|
|
csc -g webservers -v df -h # verbose
|
|
csc -g webservers -c /etc/csc uptime # custom config dir
|
|
```
|
|
|
|
## Output
|
|
|
|
```
|
|
[1/2] "uptime" on web01 → ssh -t web01 "TERM=xterm DEBIAN_FRONTEND=dialog uptime"
|
|
✓ ok
|
|
[2/2] "uptime" on web02 → ...
|
|
✗ failed (exit 255)
|
|
```
|