backend.ai-kernel-binary 26.2.4__tar.gz → 26.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/PKG-INFO +1 -1
- backend_ai_kernel_binary-26.3.0/ai/backend/runner/VERSION +1 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/all-smi.1 +67 -14
- backend_ai_kernel_binary-26.3.0/ai/backend/runner/all-smi.aarch64.bin +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/bssh.1 +485 -7
- backend_ai_kernel_binary-26.2.4/ai/backend/runner/all-smi.aarch64.bin → backend_ai_kernel_binary-26.3.0/ai/backend/runner/bssh.aarch64.bin +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/backend.ai_kernel_binary.egg-info/PKG-INFO +1 -1
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/setup.py +1 -1
- backend_ai_kernel_binary-26.2.4/ai/backend/runner/VERSION +0 -1
- backend_ai_kernel_binary-26.2.4/ai/backend/runner/bssh.aarch64.bin +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/MANIFEST.in +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/.bash_profile +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/.bashrc +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/.tmux.conf +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/.vimrc +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/.zshrc +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/DO_NOT_STORE_PERSISTENT_FILES_HERE.md +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/README.md +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/__init__.py +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/default-seccomp.json +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/dropbearmulti.aarch64.bin +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/entrypoint.sh +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/extract_dotfiles.py +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/fantompass.py +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/hash_phrase.py +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/jupyter-custom.css +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/krunner-extractor.img.aarch64.tar.xz +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/krunner-extractor.sh +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/libbaihook.alpine3.8.aarch64.so +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/libbaihook.centos7.6.aarch64.so +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/libbaihook.centos7.9.aarch64.so +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/libbaihook.centos8.0.aarch64.so +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/libbaihook.ubuntu18.04.aarch64.so +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/libbaihook.ubuntu20.04.aarch64.so +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/libbaihook.ubuntu22.04.aarch64.so +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/logo.svg +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/roboto-italic.ttf +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/roboto.ttf +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/sftp-server.aarch64.bin +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/su-exec.aarch64.bin +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/terminfo.alpine3.8/s/screen +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/terminfo.alpine3.8/s/screen-256color +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/terminfo.alpine3.8/s/screen.xterm-256color +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/terminfo.alpine3.8/x/xterm +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/terminfo.alpine3.8/x/xterm+256color +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/terminfo.alpine3.8/x/xterm-256color +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/tmux.aarch64.bin +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/ttyd_linux.aarch64.bin +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/words.json +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/yank.sh +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/backend.ai_kernel_binary.egg-info/SOURCES.txt +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/backend.ai_kernel_binary.egg-info/dependency_links.txt +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/backend.ai_kernel_binary.egg-info/namespace_packages.txt +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/backend.ai_kernel_binary.egg-info/not-zip-safe +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/backend.ai_kernel_binary.egg-info/top_level.txt +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/backend_shim.py +0 -0
- {backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/setup.cfg +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
26.3.0
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/all-smi.1
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.TH ALL-SMI 1 "
|
|
1
|
+
.TH ALL-SMI 1 "March 2026" "all-smi 0.17.3" "User Commands"
|
|
2
2
|
.SH NAME
|
|
3
3
|
all-smi \- Command-line utility for monitoring GPU hardware
|
|
4
4
|
.SH SYNOPSIS
|
|
@@ -15,9 +15,11 @@ all-smi \- Command-line utility for monitoring GPU hardware
|
|
|
15
15
|
\fBhelp\fR [\fICOMMAND\fR]
|
|
16
16
|
.SH DESCRIPTION
|
|
17
17
|
.B all-smi
|
|
18
|
-
is a comprehensive hardware monitoring tool that provides real-time information about GPU/NPU utilization,
|
|
19
|
-
memory usage, temperature, power consumption, and other
|
|
20
|
-
including NVIDIA GPUs, Apple Silicon, NVIDIA Jetson, Tenstorrent NPUs, Rebellions NPUs, and Furiosa NPUs.
|
|
18
|
+
is a comprehensive hardware monitoring tool that provides real-time information about GPU/NPU utilization,
|
|
19
|
+
memory usage, temperature, power consumption, chassis-level metrics, and other system information. It supports various hardware platforms
|
|
20
|
+
including NVIDIA GPUs, AMD GPUs, Apple Silicon, NVIDIA Jetson, Google Cloud TPUs, Tenstorrent NPUs, Rebellions NPUs, and Furiosa NPUs.
|
|
21
|
+
Chassis monitoring provides node-level power consumption tracking (CPU+GPU+ANE), thermal pressure monitoring (Apple Silicon),
|
|
22
|
+
and BMC sensor integration for inlet/outlet temperatures and fan speeds on server systems.
|
|
21
23
|
|
|
22
24
|
The tool can run in three primary modes:
|
|
23
25
|
.TP
|
|
@@ -33,7 +35,7 @@ A Prometheus-compatible metrics endpoint for integration with monitoring systems
|
|
|
33
35
|
.TP
|
|
34
36
|
.B local
|
|
35
37
|
Run in local mode, monitoring local GPUs/NPUs with an interactive TUI. This is the default mode if no command is specified.
|
|
36
|
-
|
|
38
|
+
No sudo required on macOS (uses native APIs).
|
|
37
39
|
.TP
|
|
38
40
|
.B view
|
|
39
41
|
Run in remote view mode, monitoring remote nodes via API endpoints. Requires either --hosts or --hostfile option.
|
|
@@ -41,7 +43,7 @@ Does not require sudo permissions.
|
|
|
41
43
|
.TP
|
|
42
44
|
.B api
|
|
43
45
|
Run in API mode, exposing metrics in Prometheus format via HTTP endpoint.
|
|
44
|
-
|
|
46
|
+
No sudo required on macOS (uses native APIs).
|
|
45
47
|
.TP
|
|
46
48
|
.B help
|
|
47
49
|
Display help information about all-smi or a specific command.
|
|
@@ -84,17 +86,30 @@ If not specified, uses adaptive interval based on node count:
|
|
|
84
86
|
.SS API Mode Options
|
|
85
87
|
.TP
|
|
86
88
|
.B \-p, \-\-port \fIPORT\fR
|
|
87
|
-
The port to listen on for the API server (default: 9090)
|
|
89
|
+
The port to listen on for the API server (default: 9090). Use 0 to disable TCP listener when using Unix socket.
|
|
88
90
|
.TP
|
|
89
91
|
.B \-i, \-\-interval \fISECONDS\fR
|
|
90
92
|
The interval in seconds at which to update the hardware information (default: 3)
|
|
91
93
|
.TP
|
|
92
94
|
.B \-\-processes
|
|
93
95
|
Include the process list in the API output
|
|
96
|
+
.TP
|
|
97
|
+
.B \-s, \-\-socket \fR[\fIPATH\fR]
|
|
98
|
+
Unix domain socket path for local IPC (Unix only). When specified without a path, uses platform default:
|
|
99
|
+
.RS
|
|
100
|
+
.IP \(bu 3
|
|
101
|
+
Linux: /var/run/all-smi.sock (fallback to /tmp/all-smi.sock if no write permission)
|
|
102
|
+
.IP \(bu 3
|
|
103
|
+
macOS: /tmp/all-smi.sock
|
|
104
|
+
.RE
|
|
105
|
+
.RS
|
|
106
|
+
Socket permissions are set to 0600 (owner-only access) for security.
|
|
107
|
+
Can be used together with --port for simultaneous TCP and Unix socket listeners.
|
|
108
|
+
.RE
|
|
94
109
|
.SH INTERACTIVE CONTROLS (LOCAL/VIEW MODE)
|
|
95
110
|
.TP
|
|
96
111
|
.B Tab / Shift+Tab
|
|
97
|
-
Navigate between different tabs (GPU, CPU, Memory, Network, Disk)
|
|
112
|
+
Navigate between different tabs (GPU, CPU, Memory, Chassis, Network, Disk)
|
|
98
113
|
.TP
|
|
99
114
|
.B Up/Down Arrow Keys, j/k
|
|
100
115
|
Navigate through items in the current tab
|
|
@@ -112,7 +127,28 @@ Jump to the first/last item
|
|
|
112
127
|
Refresh the display immediately
|
|
113
128
|
.TP
|
|
114
129
|
.B d
|
|
115
|
-
|
|
130
|
+
Sort by default (hostname+index)
|
|
131
|
+
.TP
|
|
132
|
+
.B f
|
|
133
|
+
Toggle GPU process filter (show only processes with GPU memory usage)
|
|
134
|
+
.TP
|
|
135
|
+
.B g
|
|
136
|
+
Sort by GPU memory usage
|
|
137
|
+
.TP
|
|
138
|
+
.B m
|
|
139
|
+
Sort by memory percentage
|
|
140
|
+
.TP
|
|
141
|
+
.B p
|
|
142
|
+
Sort by PID
|
|
143
|
+
.TP
|
|
144
|
+
.B u
|
|
145
|
+
Sort by utilization
|
|
146
|
+
.TP
|
|
147
|
+
.B c
|
|
148
|
+
Toggle per-core CPU display
|
|
149
|
+
.TP
|
|
150
|
+
.B h / 1
|
|
151
|
+
Toggle help screen
|
|
116
152
|
.TP
|
|
117
153
|
.B q, Ctrl+C
|
|
118
154
|
Quit the application
|
|
@@ -121,12 +157,18 @@ Quit the application
|
|
|
121
157
|
.B NVIDIA GPUs
|
|
122
158
|
Full support via nvidia-smi, including CUDA information, PCIe status, and performance states
|
|
123
159
|
.TP
|
|
160
|
+
.B AMD GPUs
|
|
161
|
+
Support for Radeon and Instinct GPUs via ROCm/libamdgpu_top, including VRAM/GTT memory tracking and fdinfo-based process monitoring
|
|
162
|
+
.TP
|
|
124
163
|
.B Apple Silicon
|
|
125
164
|
Native support for M1/M2/M3/M4 series with Metal API integration, ANE power monitoring, and thermal pressure tracking
|
|
126
165
|
.TP
|
|
127
166
|
.B NVIDIA Jetson
|
|
128
167
|
Tegra-specific metrics with DLA (Deep Learning Accelerator) support
|
|
129
168
|
.TP
|
|
169
|
+
.B Google Cloud TPUs
|
|
170
|
+
Support for TPU v2-v7/Ironwood architectures, HBM memory tracking, and integration with libtpu/JAX workflows
|
|
171
|
+
.TP
|
|
130
172
|
.B Tenstorrent NPUs
|
|
131
173
|
Support for Grayskull and Wormhole architectures with multiple temperature sensors and clock domains
|
|
132
174
|
.TP
|
|
@@ -160,6 +202,18 @@ Start API server on default port 9090:
|
|
|
160
202
|
Start API server on custom port with 5-second interval:
|
|
161
203
|
.B all-smi api --port 8080 --interval 5
|
|
162
204
|
.TP
|
|
205
|
+
Start API server with Unix socket (default path):
|
|
206
|
+
.B all-smi api --socket
|
|
207
|
+
.TP
|
|
208
|
+
Start API server with TCP and Unix socket simultaneously:
|
|
209
|
+
.B all-smi api --port 9090 --socket /tmp/all-smi.sock
|
|
210
|
+
.TP
|
|
211
|
+
Start API server with Unix socket only (no TCP):
|
|
212
|
+
.B all-smi api --port 0 --socket
|
|
213
|
+
.TP
|
|
214
|
+
Access metrics via Unix socket:
|
|
215
|
+
.B curl --unix-socket /tmp/all-smi.sock http://localhost/metrics
|
|
216
|
+
.TP
|
|
163
217
|
Monitor local hardware with custom interval:
|
|
164
218
|
.B all-smi local --interval 5
|
|
165
219
|
.TP
|
|
@@ -188,7 +242,7 @@ https://node003:9443
|
|
|
188
242
|
Set logging level (e.g., debug, info, warn, error)
|
|
189
243
|
.SH NOTES
|
|
190
244
|
.IP \(bu 3
|
|
191
|
-
On macOS, sudo permissions are required
|
|
245
|
+
On macOS, no sudo permissions are required (uses native APIs: IOReport, SMC, NSProcessInfo)
|
|
192
246
|
.IP \(bu 3
|
|
193
247
|
Remote monitoring requires the target hosts to be running all-smi in API mode
|
|
194
248
|
.IP \(bu 3
|
|
@@ -209,7 +263,7 @@ Interrupted by Ctrl+C (SIGINT)
|
|
|
209
263
|
.B 143
|
|
210
264
|
Terminated by SIGTERM
|
|
211
265
|
.SH BUGS
|
|
212
|
-
Report bugs at: https://github.com/
|
|
266
|
+
Report bugs at: https://github.com/lablup/all-smi/issues
|
|
213
267
|
.SH AUTHOR
|
|
214
268
|
Written by Jeongkyu Shin <inureyes@gmail.com>
|
|
215
269
|
.SH COPYRIGHT
|
|
@@ -220,7 +274,6 @@ License: MIT OR Apache-2.0
|
|
|
220
274
|
This is free software: you are free to change and redistribute it.
|
|
221
275
|
There is NO WARRANTY, to the extent permitted by law.
|
|
222
276
|
.SH SEE ALSO
|
|
223
|
-
.BR nvidia-smi (1)
|
|
224
|
-
.BR powermetrics (1)
|
|
277
|
+
.BR nvidia-smi (1)
|
|
225
278
|
|
|
226
|
-
Project homepage: https://github.com/
|
|
279
|
+
Project homepage: https://github.com/lablup/all-smi
|
|
Binary file
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/bssh.1
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.\" Manpage for bssh
|
|
2
2
|
.\" Contact the maintainers to correct errors or typos.
|
|
3
|
-
.TH BSSH 1 "
|
|
3
|
+
.TH BSSH 1 "January 2026" "v1.7.0" "bssh Manual"
|
|
4
4
|
|
|
5
5
|
.SH NAME
|
|
6
6
|
bssh \- Broadcast SSH - SSH-compatible client with parallel execution capabilities
|
|
@@ -24,7 +24,10 @@ common SSH options and automatically starting an interactive shell when no comma
|
|
|
24
24
|
|
|
25
25
|
.B Multi-Server Mode:
|
|
26
26
|
When used with clusters (-C) or multiple hosts (-H), bssh executes commands across multiple nodes
|
|
27
|
-
simultaneously with real-time output
|
|
27
|
+
simultaneously with real-time output monitoring. In interactive terminals, bssh automatically
|
|
28
|
+
launches a Terminal User Interface (TUI) with multiple view modes (Summary, Detail, Split, Diff)
|
|
29
|
+
for real-time monitoring. The TUI can be disabled with --stream (real-time text output) or
|
|
30
|
+
--output-dir (save to files).
|
|
28
31
|
|
|
29
32
|
The tool provides secure file transfer capabilities using SFTP protocol, supports multiple authentication
|
|
30
33
|
methods (SSH keys with passphrase support, SSH agent, password), and automatically detects Backend.AI
|
|
@@ -110,7 +113,29 @@ Example: -D 1080 (SOCKS5 proxy on localhost:1080), -D *:1080/4 (SOCKS4 on all in
|
|
|
110
113
|
.TP
|
|
111
114
|
.BR \-H ", " \-\-hosts " " \fIHOSTS\fR
|
|
112
115
|
Comma-separated list of hosts in [user@]hostname[:port] format.
|
|
113
|
-
|
|
116
|
+
Supports pdsh-style hostlist expressions for range expansion.
|
|
117
|
+
.RS
|
|
118
|
+
.PP
|
|
119
|
+
Simple host list:
|
|
120
|
+
.IP \[bu] 2
|
|
121
|
+
-H "user1@host1:2222,user2@host2"
|
|
122
|
+
.PP
|
|
123
|
+
Hostlist expressions (range expansion):
|
|
124
|
+
.IP \[bu] 2
|
|
125
|
+
-H "node[1-5]" \[->] node1, node2, node3, node4, node5
|
|
126
|
+
.IP \[bu] 2
|
|
127
|
+
-H "node[01-05]" \[->] node01, node02, ... (zero-padded)
|
|
128
|
+
.IP \[bu] 2
|
|
129
|
+
-H "node[1,3,5]" \[->] node1, node3, node5 (specific values)
|
|
130
|
+
.IP \[bu] 2
|
|
131
|
+
-H "rack[1-2]-node[1-3]" \[->] 6 hosts (cartesian product)
|
|
132
|
+
.IP \[bu] 2
|
|
133
|
+
-H "web[1-3].example.com" \[->] web1.example.com, web2.example.com, ...
|
|
134
|
+
.IP \[bu] 2
|
|
135
|
+
-H "admin@web[1-3]:22" \[->] expands with user and port preserved
|
|
136
|
+
.IP \[bu] 2
|
|
137
|
+
-H "^/path/to/hostfile" \[->] read hosts from file
|
|
138
|
+
.RE
|
|
114
139
|
|
|
115
140
|
.TP
|
|
116
141
|
.BR \-C ", " \-\-cluster " " \fICLUSTER\fR
|
|
@@ -134,21 +159,152 @@ Use password authentication. When this option is specified, bssh will
|
|
|
134
159
|
prompt for the password securely without echoing it to the terminal.
|
|
135
160
|
This is useful for systems that don't have SSH keys configured.
|
|
136
161
|
|
|
162
|
+
.TP
|
|
163
|
+
.BR \-S ", " \-\-sudo\-password
|
|
164
|
+
Prompt for sudo password to automatically respond to sudo prompts.
|
|
165
|
+
When this option is specified, bssh will:
|
|
166
|
+
.RS
|
|
167
|
+
.IP \[bu] 2
|
|
168
|
+
Securely prompt for sudo password before execution (no terminal echo)
|
|
169
|
+
.IP \[bu] 2
|
|
170
|
+
Detect sudo password prompts in command output
|
|
171
|
+
.IP \[bu] 2
|
|
172
|
+
Automatically inject the password when prompted
|
|
173
|
+
.RE
|
|
174
|
+
.IP
|
|
175
|
+
Alternatively, set the
|
|
176
|
+
.B BSSH_SUDO_PASSWORD
|
|
177
|
+
environment variable (not recommended for security reasons).
|
|
178
|
+
.IP
|
|
179
|
+
Security notes:
|
|
180
|
+
.RS
|
|
181
|
+
.IP \[bu] 2
|
|
182
|
+
Password is stored using secure memory handling (secrecy crate)
|
|
183
|
+
.IP \[bu] 2
|
|
184
|
+
Password is cleared from memory immediately after use
|
|
185
|
+
.IP \[bu] 2
|
|
186
|
+
Password is never logged or printed in any output
|
|
187
|
+
.RE
|
|
188
|
+
|
|
137
189
|
.TP
|
|
138
190
|
.BR \-f ", " \-\-filter " " \fIPATTERN\fR
|
|
139
|
-
Filter hosts by pattern
|
|
191
|
+
Filter hosts by pattern. Supports both wildcards and hostlist expressions.
|
|
140
192
|
Use with -H or -C to execute on a subset of hosts.
|
|
141
|
-
|
|
193
|
+
.RS
|
|
194
|
+
.PP
|
|
195
|
+
Examples:
|
|
196
|
+
.IP \[bu] 2
|
|
197
|
+
-f "web*" \[->] matches web01, web02, etc. (glob pattern)
|
|
198
|
+
.IP \[bu] 2
|
|
199
|
+
-f "node[1-5]" \[->] matches node1 through node5 (hostlist expression)
|
|
200
|
+
.IP \[bu] 2
|
|
201
|
+
-f "node[1,3,5]" \[->] matches node1, node3, node5 (specific values)
|
|
202
|
+
.RE
|
|
203
|
+
|
|
204
|
+
.TP
|
|
205
|
+
.BR \-\-exclude " " \fIHOSTS\fR
|
|
206
|
+
Exclude hosts from target list (comma-separated).
|
|
207
|
+
Supports wildcards, glob patterns, and hostlist expressions.
|
|
208
|
+
Applied after --filter option.
|
|
209
|
+
.RS
|
|
210
|
+
.PP
|
|
211
|
+
Glob patterns:
|
|
212
|
+
.IP \[bu] 2
|
|
213
|
+
--exclude "db*" \[->] exclude hosts starting with 'db'
|
|
214
|
+
.IP \[bu] 2
|
|
215
|
+
--exclude "*-backup" \[->] exclude backup nodes
|
|
216
|
+
.IP \[bu] 2
|
|
217
|
+
--exclude "web[12]" \[->] exclude web1 and web2 (glob character class)
|
|
218
|
+
.PP
|
|
219
|
+
Hostlist expressions:
|
|
220
|
+
.IP \[bu] 2
|
|
221
|
+
--exclude "node[3-5]" \[->] exclude node3, node4, node5 (range)
|
|
222
|
+
.IP \[bu] 2
|
|
223
|
+
--exclude "node[1,3,5]" \[->] exclude node1, node3, node5 (specific values)
|
|
224
|
+
.IP \[bu] 2
|
|
225
|
+
--exclude "rack[1-2]-node[1-3]" \[->] exclude 6 hosts (cartesian product)
|
|
226
|
+
.PP
|
|
227
|
+
Simple patterns:
|
|
228
|
+
.IP \[bu] 2
|
|
229
|
+
--exclude "node2" \[->] exclude single host
|
|
230
|
+
.IP \[bu] 2
|
|
231
|
+
--exclude "web1,web2" \[->] exclude multiple hosts
|
|
232
|
+
.RE
|
|
142
233
|
|
|
143
234
|
.TP
|
|
144
235
|
.BR \-\-parallel " " \fIPARALLEL\fR
|
|
145
236
|
Maximum parallel connections for multi-server mode (default: 10)
|
|
146
237
|
Note: -p is now used for port (SSH compatibility)
|
|
147
238
|
|
|
239
|
+
.TP
|
|
240
|
+
.BR \-\-timeout " " \fISECONDS\fR
|
|
241
|
+
Command execution timeout in seconds. Set to 0 for unlimited execution time.
|
|
242
|
+
Default is 300 seconds (5 minutes).
|
|
243
|
+
.br
|
|
244
|
+
Example: --timeout 60 (1 minute timeout)
|
|
245
|
+
|
|
246
|
+
.TP
|
|
247
|
+
.BR \-\-connect\-timeout " " \fISECONDS\fR
|
|
248
|
+
SSH connection timeout in seconds. This is the time to wait for the initial
|
|
249
|
+
SSH connection to be established, separate from the command execution timeout.
|
|
250
|
+
Minimum value is 1 second. Default is 30 seconds.
|
|
251
|
+
.br
|
|
252
|
+
This option is useful for:
|
|
253
|
+
.RS
|
|
254
|
+
.IP \[bu] 2
|
|
255
|
+
Fast failure detection on unreachable hosts
|
|
256
|
+
.IP \[bu] 2
|
|
257
|
+
Adjusting timeout for high-latency networks
|
|
258
|
+
.IP \[bu] 2
|
|
259
|
+
Setting different timeouts for connection vs command execution
|
|
260
|
+
.RE
|
|
261
|
+
.IP
|
|
262
|
+
Example: --connect-timeout 10 (10 second connection timeout)
|
|
263
|
+
|
|
148
264
|
.TP
|
|
149
265
|
.BR \-\-output\-dir " " \fIOUTPUT_DIR\fR
|
|
150
266
|
Output directory for command results. When specified, saves command outputs
|
|
151
|
-
to separate files for each node with stdout, stderr, and execution summary
|
|
267
|
+
to separate files for each node with stdout, stderr, and execution summary.
|
|
268
|
+
Creates timestamped files:
|
|
269
|
+
.I hostname_TIMESTAMP.stdout
|
|
270
|
+
(command output),
|
|
271
|
+
.I hostname_TIMESTAMP.stderr
|
|
272
|
+
(error output)
|
|
273
|
+
|
|
274
|
+
.TP
|
|
275
|
+
.BR \-\-stream
|
|
276
|
+
Stream output in real-time with [node] prefixes. Each line of output is
|
|
277
|
+
prefixed with the node hostname and displayed as it arrives. Useful for
|
|
278
|
+
monitoring long-running commands across multiple nodes. Automatically
|
|
279
|
+
disabled when output is piped or in CI environments. This disables the
|
|
280
|
+
interactive TUI mode.
|
|
281
|
+
|
|
282
|
+
.TP
|
|
283
|
+
.BR \-N ", " \-\-no\-prefix
|
|
284
|
+
Disable hostname prefix in output lines (pdsh -N compatibility). When
|
|
285
|
+
specified, output lines are displayed without the [hostname] prefix,
|
|
286
|
+
which is useful for programmatic parsing or cleaner display. Works
|
|
287
|
+
with both stream mode (--stream) and file mode (--output-dir).
|
|
288
|
+
Example: bssh -H host1,host2 --stream -N "uname -a"
|
|
289
|
+
|
|
290
|
+
.TP
|
|
291
|
+
.BR \-k ", " \-\-fail\-fast
|
|
292
|
+
Stop execution immediately on first failure (pdsh -k compatible).
|
|
293
|
+
When enabled, bssh cancels pending commands when any node fails due to
|
|
294
|
+
connection error or non-zero exit code. This is useful for:
|
|
295
|
+
.RS
|
|
296
|
+
.IP \[bu] 2
|
|
297
|
+
Critical operations where partial execution is unacceptable
|
|
298
|
+
.IP \[bu] 2
|
|
299
|
+
Deployment scripts where all nodes must succeed
|
|
300
|
+
.IP \[bu] 2
|
|
301
|
+
Validation checks across clusters
|
|
302
|
+
.RE
|
|
303
|
+
.IP
|
|
304
|
+
Running tasks are terminated gracefully, and the error message clearly
|
|
305
|
+
indicates which node caused the failure. Can be combined with
|
|
306
|
+
.B --require-all-success
|
|
307
|
+
for strict error handling.
|
|
152
308
|
|
|
153
309
|
.TP
|
|
154
310
|
.BR \-v ", " \-\-verbose
|
|
@@ -269,6 +425,7 @@ defaults:
|
|
|
269
425
|
port: 22
|
|
270
426
|
ssh_key: ~/.ssh/id_rsa
|
|
271
427
|
parallel: 10
|
|
428
|
+
jump_host: bastion.example.com # Global default jump host
|
|
272
429
|
|
|
273
430
|
# Global interactive mode settings (optional)
|
|
274
431
|
interactive:
|
|
@@ -287,6 +444,7 @@ clusters:
|
|
|
287
444
|
- web2.example.com
|
|
288
445
|
- user@web3.example.com:2222
|
|
289
446
|
ssh_key: ~/.ssh/prod_key
|
|
447
|
+
jump_host: prod-bastion.example.com # Cluster-level jump host
|
|
290
448
|
# Cluster-specific interactive settings (overrides global)
|
|
291
449
|
interactive:
|
|
292
450
|
default_mode: single_node
|
|
@@ -298,8 +456,52 @@ clusters:
|
|
|
298
456
|
- host: staging1.example.com
|
|
299
457
|
port: 2200
|
|
300
458
|
user: deploy
|
|
459
|
+
jump_host: staging-bastion.example.com # Node-level jump host
|
|
301
460
|
- staging2.example.com
|
|
302
461
|
user: staging_user
|
|
462
|
+
jump_host: "" # Empty string disables jump host for this cluster
|
|
463
|
+
.fi
|
|
464
|
+
|
|
465
|
+
.SS Jump Host Configuration in YAML
|
|
466
|
+
Jump hosts can be configured at three levels with the following priority:
|
|
467
|
+
|
|
468
|
+
.IP 1. 4
|
|
469
|
+
\fBNode-level\fR (highest priority) - applies to specific node only
|
|
470
|
+
.IP 2. 4
|
|
471
|
+
\fBCluster-level\fR - applies to all nodes in the cluster
|
|
472
|
+
.IP 3. 4
|
|
473
|
+
\fBGlobal defaults\fR - applies to all clusters without explicit jump_host
|
|
474
|
+
|
|
475
|
+
.PP
|
|
476
|
+
The CLI \fB-J\fR option always takes precedence over configuration file settings.
|
|
477
|
+
|
|
478
|
+
.PP
|
|
479
|
+
Special values:
|
|
480
|
+
.IP \[bu] 2
|
|
481
|
+
Empty string (\fB""\fR) - explicitly disables jump host inheritance
|
|
482
|
+
.IP \[bu] 2
|
|
483
|
+
Environment variables supported: \fB${VAR}\fR or \fB$VAR\fR syntax
|
|
484
|
+
|
|
485
|
+
.PP
|
|
486
|
+
Example with all levels:
|
|
487
|
+
.nf
|
|
488
|
+
defaults:
|
|
489
|
+
jump_host: global-bastion.example.com
|
|
490
|
+
|
|
491
|
+
clusters:
|
|
492
|
+
production:
|
|
493
|
+
nodes:
|
|
494
|
+
- host: web1.internal
|
|
495
|
+
jump_host: special-bastion.example.com # Uses special-bastion
|
|
496
|
+
- host: web2.internal # Uses prod-bastion
|
|
497
|
+
- host: direct.example.com
|
|
498
|
+
jump_host: "" # Direct connection (no jump)
|
|
499
|
+
jump_host: prod-bastion.example.com
|
|
500
|
+
|
|
501
|
+
direct_cluster:
|
|
502
|
+
nodes:
|
|
503
|
+
- host: external.example.com
|
|
504
|
+
jump_host: "" # Cluster disables inherited global jump_host
|
|
303
505
|
.fi
|
|
304
506
|
|
|
305
507
|
.SH SSH CONFIGURATION OPTIONS
|
|
@@ -884,6 +1086,82 @@ Host legacy.example.com
|
|
|
884
1086
|
RequiredRSASize 1024
|
|
885
1087
|
.fi
|
|
886
1088
|
|
|
1089
|
+
.SH PDSH COMPATIBILITY MODE
|
|
1090
|
+
.B bssh
|
|
1091
|
+
supports pdsh compatibility mode, enabling it to act as a drop-in replacement for pdsh.
|
|
1092
|
+
This allows seamless migration from pdsh without modifying existing scripts.
|
|
1093
|
+
|
|
1094
|
+
.SS Activation Methods
|
|
1095
|
+
|
|
1096
|
+
.TP
|
|
1097
|
+
.B Binary symlink (recommended)
|
|
1098
|
+
Create a symlink to use bssh as pdsh:
|
|
1099
|
+
.nf
|
|
1100
|
+
sudo ln -s /usr/bin/bssh /usr/local/bin/pdsh
|
|
1101
|
+
pdsh -w host1,host2 "uptime"
|
|
1102
|
+
.fi
|
|
1103
|
+
|
|
1104
|
+
.TP
|
|
1105
|
+
.B Environment variable
|
|
1106
|
+
Set BSSH_PDSH_COMPAT to enable pdsh mode:
|
|
1107
|
+
.nf
|
|
1108
|
+
BSSH_PDSH_COMPAT=1 bssh -w host1,host2 "uptime"
|
|
1109
|
+
.fi
|
|
1110
|
+
|
|
1111
|
+
.TP
|
|
1112
|
+
.B CLI flag
|
|
1113
|
+
Use --pdsh-compat flag:
|
|
1114
|
+
.nf
|
|
1115
|
+
bssh --pdsh-compat -w host1,host2 "uptime"
|
|
1116
|
+
.fi
|
|
1117
|
+
|
|
1118
|
+
.SS pdsh Option Mapping
|
|
1119
|
+
|
|
1120
|
+
.TS
|
|
1121
|
+
l l l.
|
|
1122
|
+
pdsh option bssh equivalent Description
|
|
1123
|
+
_
|
|
1124
|
+
-w hosts -H hosts Target hosts
|
|
1125
|
+
-x hosts --exclude hosts Exclude hosts
|
|
1126
|
+
-f N --parallel N Fanout (default: 32)
|
|
1127
|
+
-l user -l user Remote username
|
|
1128
|
+
-t N --connect-timeout N Connection timeout
|
|
1129
|
+
-u N --timeout N Command timeout
|
|
1130
|
+
-N --no-prefix No hostname prefix
|
|
1131
|
+
-b --batch Batch mode
|
|
1132
|
+
-k --fail-fast Stop on first failure
|
|
1133
|
+
-q (query mode) Show hosts and exit
|
|
1134
|
+
-S --any-failure Return largest exit code
|
|
1135
|
+
.TE
|
|
1136
|
+
|
|
1137
|
+
.SS pdsh Mode Examples
|
|
1138
|
+
|
|
1139
|
+
.TP
|
|
1140
|
+
Basic command execution:
|
|
1141
|
+
.B pdsh -w node1,node2,node3 "uptime"
|
|
1142
|
+
|
|
1143
|
+
.TP
|
|
1144
|
+
With fanout limit:
|
|
1145
|
+
.B pdsh -w nodes -f 10 "df -h"
|
|
1146
|
+
|
|
1147
|
+
.TP
|
|
1148
|
+
Exclude specific hosts:
|
|
1149
|
+
.B pdsh -w node1,node2,node3 -x node2 "hostname"
|
|
1150
|
+
|
|
1151
|
+
.TP
|
|
1152
|
+
Query mode (show hosts without executing):
|
|
1153
|
+
.B pdsh -w host1,host2,host3 -x host2 -q
|
|
1154
|
+
.RS
|
|
1155
|
+
Shows only host1 and host3
|
|
1156
|
+
.RE
|
|
1157
|
+
|
|
1158
|
+
.TP
|
|
1159
|
+
Query mode with glob patterns:
|
|
1160
|
+
.B pdsh -w web1,web2,db1,db2 -x "db*" -q
|
|
1161
|
+
.RS
|
|
1162
|
+
Shows web1 and web2 (db* pattern excludes db1 and db2)
|
|
1163
|
+
.RE
|
|
1164
|
+
|
|
887
1165
|
.SH BACKEND.AI INTEGRATION
|
|
888
1166
|
When running inside a Backend.AI multi-node session, bssh automatically detects cluster configuration
|
|
889
1167
|
from environment variables:
|
|
@@ -902,6 +1180,79 @@ Current node's role (main or sub)
|
|
|
902
1180
|
|
|
903
1181
|
Note: Backend.AI multi-node clusters use SSH port 2200 by default, which is automatically configured.
|
|
904
1182
|
|
|
1183
|
+
.SH HOSTLIST EXPRESSIONS
|
|
1184
|
+
Hostlist expressions provide a compact way to specify multiple hosts using range notation,
|
|
1185
|
+
compatible with pdsh syntax. This allows efficient targeting of large numbers of hosts
|
|
1186
|
+
without listing each one individually.
|
|
1187
|
+
|
|
1188
|
+
.SS Basic Syntax
|
|
1189
|
+
.TP
|
|
1190
|
+
.B Simple range
|
|
1191
|
+
.B node[1-5]
|
|
1192
|
+
expands to node1, node2, node3, node4, node5
|
|
1193
|
+
.TP
|
|
1194
|
+
.B Zero-padded range
|
|
1195
|
+
.B node[01-05]
|
|
1196
|
+
expands to node01, node02, node03, node04, node05
|
|
1197
|
+
.TP
|
|
1198
|
+
.B Comma-separated values
|
|
1199
|
+
.B node[1,3,5]
|
|
1200
|
+
expands to node1, node3, node5
|
|
1201
|
+
.TP
|
|
1202
|
+
.B Mixed ranges and values
|
|
1203
|
+
.B node[1-3,7,9-10]
|
|
1204
|
+
expands to node1, node2, node3, node7, node9, node10
|
|
1205
|
+
|
|
1206
|
+
.SS Advanced Patterns
|
|
1207
|
+
.TP
|
|
1208
|
+
.B Multiple ranges (cartesian product)
|
|
1209
|
+
.B rack[1-2]-node[1-3]
|
|
1210
|
+
expands to rack1-node1, rack1-node2, rack1-node3, rack2-node1, rack2-node2, rack2-node3
|
|
1211
|
+
.TP
|
|
1212
|
+
.B Domain suffix
|
|
1213
|
+
.B web[1-3].example.com
|
|
1214
|
+
expands to web1.example.com, web2.example.com, web3.example.com
|
|
1215
|
+
.TP
|
|
1216
|
+
.B With user and port
|
|
1217
|
+
.B admin@server[1-3]:2222
|
|
1218
|
+
expands to admin@server1:2222, admin@server2:2222, admin@server3:2222
|
|
1219
|
+
|
|
1220
|
+
.SS File Input
|
|
1221
|
+
.TP
|
|
1222
|
+
.B ^/path/to/hostfile
|
|
1223
|
+
Reads hosts from file, one per line. Lines starting with # are comments.
|
|
1224
|
+
Maximum file size: 1MB, maximum lines: 100,000.
|
|
1225
|
+
|
|
1226
|
+
.SS Using with Options
|
|
1227
|
+
Hostlist expressions can be used with:
|
|
1228
|
+
.TP
|
|
1229
|
+
.B -H, --hosts
|
|
1230
|
+
Specify target hosts:
|
|
1231
|
+
.B bssh -H "node[1-10]" "uptime"
|
|
1232
|
+
.TP
|
|
1233
|
+
.B --filter
|
|
1234
|
+
Include only matching hosts:
|
|
1235
|
+
.B bssh -c cluster --filter "web[1-5]" "systemctl status nginx"
|
|
1236
|
+
.TP
|
|
1237
|
+
.B --exclude
|
|
1238
|
+
Exclude matching hosts:
|
|
1239
|
+
.B bssh -c cluster --exclude "node[1,3,5]" "df -h"
|
|
1240
|
+
|
|
1241
|
+
.SS Examples
|
|
1242
|
+
.nf
|
|
1243
|
+
# Execute on 100 nodes
|
|
1244
|
+
bssh -H "compute[001-100]" "hostname"
|
|
1245
|
+
|
|
1246
|
+
# Target specific racks
|
|
1247
|
+
bssh -H "rack[A-C]-node[1-8]" "uptime"
|
|
1248
|
+
|
|
1249
|
+
# Use hosts from file
|
|
1250
|
+
bssh -H "^/etc/cluster/hosts" "date"
|
|
1251
|
+
|
|
1252
|
+
# Combine with exclusions
|
|
1253
|
+
bssh -H "node[1-20]" --exclude "node[5,10,15]" "ps aux"
|
|
1254
|
+
.fi
|
|
1255
|
+
|
|
905
1256
|
.SH EXAMPLES
|
|
906
1257
|
|
|
907
1258
|
.SS SSH Compatibility Mode (Single Host)
|
|
@@ -1008,6 +1359,25 @@ Executes command only on hosts matching the pattern 'web*'
|
|
|
1008
1359
|
Executes command only on database nodes in the production cluster
|
|
1009
1360
|
.RE
|
|
1010
1361
|
|
|
1362
|
+
.TP
|
|
1363
|
+
Exclude specific hosts from execution:
|
|
1364
|
+
.B bssh -H "node1,node2,node3" --exclude "node2" "uptime"
|
|
1365
|
+
.RS
|
|
1366
|
+
Executes command on node1 and node3, excluding node2
|
|
1367
|
+
.RE
|
|
1368
|
+
|
|
1369
|
+
.TP
|
|
1370
|
+
.B bssh -C production --exclude "db*" "systemctl restart nginx"
|
|
1371
|
+
.RS
|
|
1372
|
+
Executes command on all production hosts except database servers
|
|
1373
|
+
.RE
|
|
1374
|
+
|
|
1375
|
+
.TP
|
|
1376
|
+
.B bssh -C production --exclude "web1,web2" "apt update"
|
|
1377
|
+
.RS
|
|
1378
|
+
Excludes specific hosts web1 and web2 from the cluster operation
|
|
1379
|
+
.RE
|
|
1380
|
+
|
|
1011
1381
|
.TP
|
|
1012
1382
|
Test connectivity:
|
|
1013
1383
|
.B bssh -C production ping
|
|
@@ -1050,6 +1420,20 @@ Use password authentication:
|
|
|
1050
1420
|
Prompts for password interactively
|
|
1051
1421
|
.RE
|
|
1052
1422
|
|
|
1423
|
+
.TP
|
|
1424
|
+
Execute sudo commands with automatic password injection:
|
|
1425
|
+
.B bssh -S -C production "sudo apt update && sudo apt upgrade -y"
|
|
1426
|
+
.RS
|
|
1427
|
+
Prompts for sudo password once, then automatically responds to sudo prompts on all nodes
|
|
1428
|
+
.RE
|
|
1429
|
+
|
|
1430
|
+
.TP
|
|
1431
|
+
Combine sudo with SSH agent authentication:
|
|
1432
|
+
.B bssh -A -S -C production "sudo systemctl restart nginx"
|
|
1433
|
+
.RS
|
|
1434
|
+
Uses SSH agent for connection and sudo password for privilege escalation
|
|
1435
|
+
.RE
|
|
1436
|
+
|
|
1053
1437
|
.TP
|
|
1054
1438
|
Use encrypted SSH key:
|
|
1055
1439
|
.B bssh -i ~/.ssh/encrypted_key -C production "df -h"
|
|
@@ -1066,12 +1450,83 @@ Creates timestamped files per node:
|
|
|
1066
1450
|
- hostname_TIMESTAMP.stdout (standard output)
|
|
1067
1451
|
.br
|
|
1068
1452
|
- hostname_TIMESTAMP.stderr (error output)
|
|
1069
|
-
.br
|
|
1453
|
+
.br
|
|
1070
1454
|
- hostname_TIMESTAMP.error (connection errors)
|
|
1071
1455
|
.br
|
|
1072
1456
|
- summary_TIMESTAMP.txt (execution summary)
|
|
1073
1457
|
.RE
|
|
1074
1458
|
|
|
1459
|
+
.TP
|
|
1460
|
+
Interactive TUI mode (default in terminals):
|
|
1461
|
+
.B bssh -C production "apt-get update"
|
|
1462
|
+
.RS
|
|
1463
|
+
Automatically launches Terminal UI with real-time monitoring.
|
|
1464
|
+
.br
|
|
1465
|
+
TUI features:
|
|
1466
|
+
.br
|
|
1467
|
+
- Summary view: All nodes with progress bars
|
|
1468
|
+
.br
|
|
1469
|
+
- Detail view (press 1-9): Full output from specific node
|
|
1470
|
+
.br
|
|
1471
|
+
- Split view (press s): Monitor 2-4 nodes simultaneously
|
|
1472
|
+
.br
|
|
1473
|
+
- Diff view (press d): Compare outputs side-by-side
|
|
1474
|
+
.br
|
|
1475
|
+
- Log panel (press l): Toggle in-TUI log display
|
|
1476
|
+
.br
|
|
1477
|
+
- Keyboard navigation: arrows, PgUp/PgDn, Home/End
|
|
1478
|
+
.br
|
|
1479
|
+
- Auto-scroll (press f): Toggle automatic scrolling
|
|
1480
|
+
.br
|
|
1481
|
+
- Help (press ?): Show all keyboard shortcuts
|
|
1482
|
+
.br
|
|
1483
|
+
Log panel keys (when visible):
|
|
1484
|
+
.br
|
|
1485
|
+
- j/k: Scroll log entries up/down
|
|
1486
|
+
.br
|
|
1487
|
+
- +/-: Adjust panel height (3-10 lines)
|
|
1488
|
+
.br
|
|
1489
|
+
- t: Toggle timestamps
|
|
1490
|
+
.RE
|
|
1491
|
+
|
|
1492
|
+
.TP
|
|
1493
|
+
Stream mode with real-time prefixes:
|
|
1494
|
+
.B bssh -C production --stream "tail -f /var/log/syslog"
|
|
1495
|
+
.RS
|
|
1496
|
+
Disables TUI and streams output with [node] prefixes in real-time.
|
|
1497
|
+
.br
|
|
1498
|
+
Example output:
|
|
1499
|
+
.br
|
|
1500
|
+
[host1] Oct 30 10:15:23 systemd[1]: Started nginx
|
|
1501
|
+
.br
|
|
1502
|
+
[host2] Oct 30 10:15:24 kernel: [UFW BLOCK] IN=eth0
|
|
1503
|
+
.br
|
|
1504
|
+
Useful for monitoring long-running commands or when piping output.
|
|
1505
|
+
.RE
|
|
1506
|
+
|
|
1507
|
+
.SS Fail-Fast Mode Examples
|
|
1508
|
+
.TP
|
|
1509
|
+
Stop on first failure during critical deployment:
|
|
1510
|
+
.B bssh -k -C production "deploy.sh"
|
|
1511
|
+
.RS
|
|
1512
|
+
Execution stops immediately if any node fails the deployment script
|
|
1513
|
+
.RE
|
|
1514
|
+
|
|
1515
|
+
.TP
|
|
1516
|
+
Combine fail-fast with require-all-success:
|
|
1517
|
+
.B bssh --fail-fast --require-all-success -C production "service-restart.sh"
|
|
1518
|
+
.RS
|
|
1519
|
+
Stops early on failure AND ensures final exit code reflects any failures
|
|
1520
|
+
.RE
|
|
1521
|
+
|
|
1522
|
+
.TP
|
|
1523
|
+
Sequential fail-fast with limited parallelism:
|
|
1524
|
+
.B bssh -k --parallel 1 -H "node1,node2,node3" "critical-operation"
|
|
1525
|
+
.RS
|
|
1526
|
+
Runs commands one at a time, stopping on first failure
|
|
1527
|
+
.RE
|
|
1528
|
+
|
|
1529
|
+
.SS File Transfer Examples
|
|
1075
1530
|
.TP
|
|
1076
1531
|
Upload configuration file to all nodes:
|
|
1077
1532
|
.B bssh -H "node1,node2,node3" upload /etc/myapp.conf /etc/myapp.conf
|
|
@@ -1333,6 +1788,29 @@ attacks while allowing flexible jump host configurations.
|
|
|
1333
1788
|
.br
|
|
1334
1789
|
Example: BSSH_MAX_JUMP_HOSTS=20 bssh -J host1,host2,...,host20 target
|
|
1335
1790
|
|
|
1791
|
+
.TP
|
|
1792
|
+
.B BSSH_SUDO_PASSWORD
|
|
1793
|
+
Sudo password for automated sudo authentication. When set along with the
|
|
1794
|
+
.B -S
|
|
1795
|
+
flag, bssh will use this password instead of prompting interactively.
|
|
1796
|
+
.br
|
|
1797
|
+
.B WARNING:
|
|
1798
|
+
Using environment variables for passwords is not recommended for production
|
|
1799
|
+
use as they may be visible in process listings, shell history, or logs.
|
|
1800
|
+
Prefer the interactive prompt for security-sensitive operations.
|
|
1801
|
+
.br
|
|
1802
|
+
Example: BSSH_SUDO_PASSWORD=mypassword bssh -S -C cluster "sudo apt update"
|
|
1803
|
+
|
|
1804
|
+
.TP
|
|
1805
|
+
.B BSSH_TUI_LOG_MAX_ENTRIES
|
|
1806
|
+
Maximum number of log entries to keep in the TUI log panel buffer.
|
|
1807
|
+
.br
|
|
1808
|
+
Default: 1000
|
|
1809
|
+
.br
|
|
1810
|
+
Maximum: 10000 (prevents memory exhaustion)
|
|
1811
|
+
.br
|
|
1812
|
+
Example: BSSH_TUI_LOG_MAX_ENTRIES=5000 bssh -C cluster "command"
|
|
1813
|
+
|
|
1336
1814
|
.TP
|
|
1337
1815
|
.B USER
|
|
1338
1816
|
Used as default username when not specified
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
26.2.4
|
|
Binary file
|
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/.bash_profile
RENAMED
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/.bashrc
RENAMED
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/.tmux.conf
RENAMED
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/.vimrc
RENAMED
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/.zshrc
RENAMED
|
File without changes
|
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/README.md
RENAMED
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/entrypoint.sh
RENAMED
|
File without changes
|
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/fantompass.py
RENAMED
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/hash_phrase.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/logo.svg
RENAMED
|
File without changes
|
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/roboto.ttf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/words.json
RENAMED
|
File without changes
|
{backend_ai_kernel_binary-26.2.4 → backend_ai_kernel_binary-26.3.0}/ai/backend/runner/yank.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|