Files
esn-support-bash-snippets/legacy/go/go.sh
T

109 lines
2.8 KiB
Bash
Executable File

#!/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 <<USAGE
Usage:
go k|kinit
go w|web <NR> [EUSER] [-- <REMOTE-CMD>...]
go m|mx <NR> [-- <REMOTE-CMD>...]
go l|log|logger [-- <REMOTE-CMD>...]
go s|support [-- <REMOTE-CMD>...]
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 <NR> [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 <NR>." >&2; usage; exit 1; }
nr="$1"; shift || true
host="${LUSER}@mx${nr}.in.easyname.com"
[[ $# -ge 1 && "$1" == "--" ]] && shift || true
exec ssh "$host" "$@"
;;
l|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 <NR>." >&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 <NR>." >&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 <NR>." >&2; usage; exit 1; }
nr="$1"; shift || true
host="${WHUSER}@ws${nr}.inname.net"
exec ssh "$host" "$@"
;;
*)
usage; exit 1
;;
esac