#!/usr/bin/env bash # go improved - SSH-Shortcuts für easyname, WH20, adino und inname Server # Maintainer: ljp set -euo pipefail LUSER="${LUSER:?Bitte LUSER setzen!}" WHUSER="${WHUSER:?Bitte WHUSER setzen!}" usage() { cat < [EUSER] [-- ...] go m|mx [-- ...] go l|log|logger [-- ...] go s|support [-- ...] go a|adino go i|inname go o|wh20 Beispiele: go web 42 go web 42 e110604 go mx 12 -- bash -lc 'hostname; uptime' go logger -- bash -s # für Here-Doc Serverliste: Legacy-Server 01..26, 107, 114, 119, 501..532 WH20-Server 1..25 Adino-Server 244, 251..252, 268, 272 inname-Server 20..30 USAGE } [[ $# -ge 1 ]] || { usage; exit 1; } cmd="$1"; shift || true case "$cmd" in k|kinit) exec kinit "${LUSER}@NESSUS.AT" ;; w|web) # go web NR [EUSER] [-- REMOTE-CMD...] [[ $# -ge 1 ]] || { echo "Fehler: 'go web' benötigt [EUSER]." >&2; usage; exit 1; } nr="$1"; shift || true host="${LUSER}@web${nr}.in.easyname.com" if [[ $# -ge 1 && "$1" != "--" ]]; then # EUSER angegeben -> interaktiv mit TTY (für easyuser), trotzdem leiser (-q) euser="$1"; shift || true exec ssh -qtt "$host" "bash -lic 'easyuser \"$euser\"'" else # keine EUSER -> nicht-interaktiv; evtl. REMOTE-CMD nach "--" durchreichen [[ $# -ge 1 && "$1" == "--" ]] && shift || true exec ssh "$host" "$@" fi ;; m|mx) # go mx NR [-- REMOTE-CMD...] [[ $# -ge 1 ]] || { echo "Fehler: 'go mx' benötigt ." >&2; usage; exit 1; } nr="$1"; shift || true host="${LUSER}@mx${nr}.in.easyname.com" [[ $# -ge 1 && "$1" == "--" ]] && shift || true exec ssh "$host" "$@" ;; l|log|logger) # go logger [-- REMOTE-CMD...] host="${LUSER}@logger.in.nessus.at" [[ $# -ge 1 && "$1" == "--" ]] && shift || true exec ssh "$host" "$@" ;; s|support) # go support [-- REMOTE-CMD...] host="${LUSER}@support.in.easyname.com" [[ $# -ge 1 && "$1" == "--" ]] && shift || true exec ssh "$host" "$@" ;; o|wh20) # go wh20 web NR [[ $# -ge 1 ]] || { echo "Fehler: 'go wh20' benötigt ." >&2; usage; exit 1; } nr="$1"; shift || true host="${WHUSER}@web${nr}.wh20.easyname.systems" exec ssh "$host" "$@" ;; a|adino) # go adino srv NR [[ $# -ge 1 ]] || { echo "Fehler: 'go adino' benötigt ." >&2; usage; exit 1; } nr="$1"; shift || true host="${WHUSER}@srv${nr}.adino.at" exec ssh "$host" "$@" ;; i|inname) # go adino srv NR [[ $# -ge 1 ]] || { echo "Fehler: 'go inname' benötigt ." >&2; usage; exit 1; } nr="$1"; shift || true host="${WHUSER}@ws${nr}.inname.net" exec ssh "$host" "$@" ;; *) usage; exit 1 ;; esac