109 lines
2.8 KiB
Bash
Executable File
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 |