feat(codex): publish Guanghu OS server navigator
This commit is contained in:
parent
2ee684bf61
commit
63a9236e9b
13 changed files with 941 additions and 0 deletions
66
skills/codex/guanghu-os-server/scripts/native-recover-hosted.sh
Executable file
66
skills/codex/guanghu-os-server/scripts/native-recover-hosted.sh
Executable file
|
|
@ -0,0 +1,66 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
if [[ ${GH_OS_TARGET:-BS-SH-005} != BS-SH-005 ]]; then
|
||||
echo "BS_SH_005_ADAPTER_TARGET_MISMATCH target=${GH_OS_TARGET}" >&2
|
||||
exit 65
|
||||
fi
|
||||
|
||||
target=124.223.10.33
|
||||
target_alias="${GH_OS_SSH_ALIAS:-guanghu-os-bs-sh-005}"
|
||||
ssh_config="${GH_OS_SSH_CONFIG:-/Users/bingshuolingdianyuanhe/.ssh/guanghu-os-bs-sh-005.conf}"
|
||||
login_pattern=484c44502d47484f532d4c4f47494e21
|
||||
recovery_pattern=484c44502d5245434f5645522d4f5321
|
||||
|
||||
if ssh \
|
||||
-F "${ssh_config}" \
|
||||
-o BatchMode=yes \
|
||||
-o ConnectTimeout=5 \
|
||||
-o StrictHostKeyChecking=yes \
|
||||
"${target_alias}" \
|
||||
'printf "GUANGHU_HOSTED_RECOVERY_NOT_NEEDED\nboot_id="; cat /proc/sys/kernel/random/boot_id'
|
||||
then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if nc -z -w 2 "${target}" 22 >/dev/null 2>&1; then
|
||||
echo "tcp22 is open but the pinned hosted SSH identity did not verify" >&2
|
||||
exit 71
|
||||
fi
|
||||
|
||||
login_output=$(ping -D -c 1 -s 32 -p "${login_pattern}" "${target}")
|
||||
grep -q 'ttl=39' <<<"${login_output}"
|
||||
echo "GUANGHU_NATIVE_RUNTIME_OK"
|
||||
echo "authorization=GH-OS-AUTH-BINGSHUO-BS-SH-005-001"
|
||||
echo "action=reboot_and_recover_bs_sh_005"
|
||||
|
||||
recovery_output=$(ping -D -c 1 -s 32 -p "${recovery_pattern}" "${target}")
|
||||
grep -q 'ttl=39' <<<"${recovery_output}"
|
||||
echo "GHNRP_RECOVERY_COMMAND_REPLIED"
|
||||
|
||||
for attempt in $(seq 1 120); do
|
||||
if hosted_output=$(ssh \
|
||||
-F "${ssh_config}" \
|
||||
-o BatchMode=yes \
|
||||
-o ConnectTimeout=5 \
|
||||
-o StrictHostKeyChecking=yes \
|
||||
"${target_alias}" \
|
||||
'set -eu
|
||||
printf "boot_id="
|
||||
cat /proc/sys/kernel/random/boot_id
|
||||
systemctl is-active --quiet guanghu-broadcast-tower.service
|
||||
systemctl is-active --quiet guanghu-code-channel.service
|
||||
sudo -n systemctl is-enabled --quiet guanghu-native-recovery-beacon-clear.service
|
||||
echo "GHNRP_HOSTED_RECOVERY_OK"' 2>/dev/null)
|
||||
then
|
||||
printf '%s\n' "${hosted_output}"
|
||||
exit 0
|
||||
fi
|
||||
if (( attempt % 10 == 0 )); then
|
||||
printf 'waiting_for_ghnrp_hosted_recovery attempt=%s\n' "${attempt}"
|
||||
fi
|
||||
sleep 3
|
||||
done
|
||||
|
||||
echo "GHNRP recovery reply was observed but hosted SSH did not return" >&2
|
||||
exit 69
|
||||
Loading…
Reference in a new issue