infra/scripts/watch-cluster.sh

53 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# Define the tmux session name
SESSION="cluster_watch"
tmux has-session -t $SESSION 2>/dev/null
if [ $? != 0 ]; then
# Define the list of cupids
HOSTS=("apollo" "artemis" "cupid1" "cupid2" "cupid3" "cupid4" "ares")
# Start a new tmux session
tmux new-session -d -s $SESSION
# Create the bottom row with 6 panes arranged in a 2x3 grid
tmux split-window -v -t $SESSION
tmux select-pane -t $SESSION.1
tmux split-window -v -t $SESSION.1
tmux split-window -h -t $SESSION.1
tmux split-window -h -t $SESSION.1
tmux split-window -h -t $SESSION.4
tmux split-window -h -t $SESSION.5
tmux select-layout tile
# Select the first pane
tmux select-pane -t $SESSION.1
# SSH into each host and run 'sudo htop'
tmux send-keys -t $SESSION.0 "ssh ${HOSTS[0]}" C-m
for i in {1..6}; do
tmux send-keys -t $SESSION.$i "ssh ${HOSTS[$i]}" C-m
sleep 1
done
# Wait for SSH connections to establish
sleep 2
# Send 'sudo htop' command to each pane synchronously
tmux set-window-option synchronize-panes on
tmux send-keys "sudo htop" C-m
tmux set-window-option synchronize-panes off
fi
# Attach to the tmux session
tmux attach-session -t $SESSION