Quando o gerenciamento fora de banda não está disponível, eu rolo meu próprio script, que é altamente dependente do servidor e do que ajustei.
O caso mais comum é a alteração do firewall de um roteador remoto. Eu inicio uma sessão de tela e, em seguida, executo:
./iptables.sh ;echo Rules applied;echo sleeping until flush...;sleep 5 && echo Sleeping 20 more seconds - rules worked if you\'re reading this press ctrl-c to cancel the flush && sleep 20 && ./iptables-flush.sh || echo Flush cancelled
Então o iptables.sh tem minhas novas regras, enquanto o iptables-flush.sh tem um conjunto básico de regras, o que me permitirá reconectar remotamente se eu estragar tudo. Eu apertei ctrl-c para cancelar o flush, o que eu só posso fazer se as regras não me desconectarem.
Então você só precisa de um roteiro mais detalhado. Por exemplo, se você está testando mudanças em suas interfaces de rede, você escreveria um script e o colocaria em rc.local. Ele tentaria executar ping em alguns hosts diferentes e, se algum deles falhar, deverá copiar o arquivo antigo da interface de rede e reinicializar.
Ou talvez o script possa verificar os logs do ssh - se ele não conseguir fazer login em 90 segundos, restaure os arquivos de configuração e reinicie o computador.
Portanto, a resposta curta é aumentar seu bash-fu :-)
E descubra uma maneira de fazer o gerenciamento fora de banda funcionar. Essa é realmente a resposta correta, que eu sempre quis como um retorno. Por exemplo, desde que você tenha acesso ssh (esperançosamente a mais do que a máquina em que está trabalhando), você pode usar o encaminhamento de porta ssh para contornar o firewall?