#!/usr/bin/env bash # Probe pfv-tsys4 for what's available to drive the serial console. # Also snapshots local ssh/scp activity so we can de-conflict with the # other agent running in this directory. set -u echo "===== LOCAL ssh/scp activity (other-agent de-confliction) =====" ps -eo pid,ppid,etime,user,args | grep -E 'ssh|scp' | grep -v grep || echo "(none)" echo echo "===== Ping pfv-tsys4 =====" ping -c1 -W2 pfv-tsys4 >/dev/null 2>&1 && echo "ping OK" || echo "ping FAIL" echo echo "===== Probe pfv-tsys4 over ssh =====" ssh -o BatchMode=yes -o ConnectTimeout=5 root@pfv-tsys4 'bash -s' <<'REMOTE' echo "--- host ---" hostname; uname -a echo "--- tools ---" for t in python3 python expect screen minicom picocom stty fuser lsof; do p=$(command -v "$t" 2>/dev/null) && echo "$t -> $p" || echo "$t -> MISSING" done echo "--- pyserial ---" python3 -c "import serial; print('pyserial', serial.__version__)" 2>&1 echo "--- device node ---" ls -l /dev/ttyUSB2 2>&1 stat -c '%n owner=%U:%G mode=%a' /dev/ttyUSB2 2>&1 || true echo "--- who holds /dev/ttyUSB2 ---" fuser -v /dev/ttyUSB2 2>&1 || echo "(fuser: none or n/a)" lsof /dev/ttyUSB2 2>&1 | head -20 || true echo "--- screen sessions on this host ---" screen -ls 2>&1 || echo "(no screen / not installed)" echo "--- current tty settings (only readable if not held exclusively) ---" stty -F /dev/ttyUSB2 2>&1 || echo "(held exclusively - expected if screen is up)" echo "--- baud hints in config/history ---" grep -riE "ttyUSB2|115200|9600|baud" /etc/ ~/.screenrc ~/.bash_history 2>/dev/null | head -20 || true echo "--- recent console-related processes ---" ps -eo pid,etime,user,args | grep -E 'screen|minicom|picocom|ttyUSB' | grep -v grep || echo "(none)" REMOTE