shell attach bug present
All checks were successful
Update Dispatches / refresh-news (push) Successful in 2s
All checks were successful
Update Dispatches / refresh-news (push) Successful in 2s
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
# -----------------------------------------------------------------------
|
||||
# Dynasty Module: Proxmox Commander (v1.0.0)
|
||||
# Dynasty Module: Proxmox Commander (v1.1.6 - Force-Attach Shell)
|
||||
# -----------------------------------------------------------------------
|
||||
BLUE='\033[38;5;45m'; PURPLE='\033[38;5;127m'; GOLD='\033[38;5;178m'; RED='\033[38;5;196m'; NC='\033[0m'
|
||||
HOST_FILE="$HOME/.dynr/.pve_hosts"; mkdir -p "$HOME/.dynr"
|
||||
@@ -42,14 +42,13 @@ if ! command -v pct &> /dev/null; then
|
||||
IP=$(echo "$LINE" | cut -d'|' -f1); USR=$(echo "$LINE" | cut -d'|' -f2); AM=$(echo "$LINE" | cut -d'|' -f3); PE=$(echo "$LINE" | cut -d'|' -f4)
|
||||
if [[ "$AM" == "PASS" ]]; then
|
||||
P_DEC=$(echo "$PE" | base64 --decode)
|
||||
# We define the base connection here
|
||||
REMOTE_CMD="sshpass -p '$P_DEC' ssh -o StrictHostKeyChecking=no -t $USR@$IP"
|
||||
REMOTE_BASE="sshpass -p '$P_DEC' ssh -o StrictHostKeyChecking=no -t $USR@$IP"
|
||||
else
|
||||
REMOTE_CMD="ssh -o StrictHostKeyChecking=no -t $USR@$IP"; fi
|
||||
REMOTE_BASE="ssh -o StrictHostKeyChecking=no -t $USR@$IP"; fi
|
||||
else
|
||||
exec "$0"; fi
|
||||
else
|
||||
REMOTE_CMD=""; IP="LocalHost"; fi
|
||||
REMOTE_BASE=""; IP="LocalHost"; fi
|
||||
|
||||
# --- 2. FLEET OPS MENU ---
|
||||
while true; do
|
||||
@@ -58,27 +57,32 @@ while true; do
|
||||
read -p "Select: " OPT < /dev/tty
|
||||
case $OPT in
|
||||
1) read -p "Count: " CT; [[ "$CT" == "q" ]] && continue
|
||||
read -p "Start ID: " SID; read -p "Disk GB: " DSZ; $REMOTE_CMD "pvesm status"
|
||||
read -p "Start ID: " SID; read -p "Disk GB: " DSZ; $REMOTE_BASE "pvesm status"
|
||||
read -p "Template Store: " TS; read -p "Disk Store: " DS
|
||||
for (( i=0; i<CT; i++ )); do
|
||||
CID=$((SID + i)); read -p "Name for $CID: " NM
|
||||
$REMOTE_CMD "pct create $CID $TS:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst --hostname $NM --storage $DS --rootfs $DS:$DSZ --net0 name=eth0,bridge=vmbr0,ip=dhcp"
|
||||
$REMOTE_CMD "pct start $CID"; done; read -p "Done..." ;;
|
||||
2) $REMOTE_CMD "pct list"; read -p "Enter..." ;;
|
||||
3) # --- UPDATED CONSOLE (SHELL) ---
|
||||
$REMOTE_BASE "pct create $CID $TS:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst --hostname $NM --storage $DS --rootfs $DS:$DSZ --net0 name=eth0,bridge=vmbr0,ip=dhcp"
|
||||
$REMOTE_BASE "pct start $CID"; done; read -p "Done..." ;;
|
||||
2) $REMOTE_BASE "pct list"; read -p "Enter..." ;;
|
||||
3) # --- HARD-LINK CONSOLE (SHELL) ---
|
||||
echo -e "1) Host Shell 2) LXC Console 3) Back"
|
||||
read -p ": " CG
|
||||
if [[ "$CG" == "1" ]]; then
|
||||
# Running the command directly without quotes allows the shell to attach
|
||||
$REMOTE_CMD
|
||||
elif [[ "$CG" == "2" ]]; then
|
||||
read -p "LXC ID: " LID
|
||||
# Passing the internal command to the remote host
|
||||
$REMOTE_CMD "pct enter $LID"
|
||||
fi ;;
|
||||
4) echo -e "1) Host 2) All LXCs"; read -p ": " UO
|
||||
[[ "$UO" == "1" ]] && $REMOTE_CMD "apt update && apt upgrade -y"
|
||||
[[ "$UO" == "2" ]] && $REMOTE_CMD "for id in \$(pct list | awk 'NR>1 {print \$1}'); do pct exec \$id -- apt update && apt upgrade -y; done"
|
||||
read -p ": " CG < /dev/tty
|
||||
case $CG in
|
||||
1)
|
||||
echo -e "${GOLD}Connecting to Host Shell... (Type 'exit' to return)${NC}"
|
||||
eval "$REMOTE_BASE"
|
||||
;;
|
||||
2)
|
||||
read -p "LXC ID: " LID < /dev/tty
|
||||
echo -e "${BLUE}Entering LXC $LID... (Type 'exit' to return)${NC}"
|
||||
eval "$REMOTE_BASE \"pct enter $LID\""
|
||||
;;
|
||||
*) continue ;;
|
||||
esac
|
||||
read -p "Returned from Shell. Press Enter..." < /dev/tty ;;
|
||||
4) echo -e "1) Host 2) All LXCs"; read -p ": " UO < /dev/tty
|
||||
[[ "$UO" == "1" ]] && $REMOTE_BASE "apt update && apt upgrade -y"
|
||||
[[ "$UO" == "2" ]] && $REMOTE_BASE "for id in \$(pct list | awk 'NR>1 {print \$1}'); do pct exec \$id -- apt update && apt upgrade -y; done"
|
||||
read -p "Done..." ;;
|
||||
5) exec "$0" ;;
|
||||
6) exit 0 ;;
|
||||
|
||||
Reference in New Issue
Block a user