A resposta para as duas primeiras perguntas é a mesma: use
dhclient -v eth0
( -v significa verbose, nem todas as distribuições Linux possuem), ao invés de dhclient -r eth0; dhclient eth0 . Este formulário mais curto primeiro solicita uma nova atribuição do endereço IP atual e, em seguida, inicia uma negociação com o roteador somente se não puder atribuir o endereço IP solicitado, porque ele já foi feito ou porque está fora do alcance DHCP do gateway.
Eu sugiro que você use o sinalizador -v para que você possa ver esta troca, é bastante explícito.
Quanto ao seu terceiro ponto, existe a opção AFAIK no dry-run para qualquer cliente dhcp. Se você realmente insistir nisso, no entanto, você pode fazer o seguinte: configurar uma interface macvlan e iniciar uma instância dhcp para essa nova interface:
ip addr flush dev eth0
ip link add link usb0 mac0 mode macvlan
dhclient -v mac0
Neste ponto, você pode ver a configuração fornecida pelo servidor DHCP local, rede, máscara de rede, gateway e servidores DNS na nova interface virtual. Quando você terminar,
ip link del dev mac0
dhclient -v eth0
irá restaurar exatamente a configuração que você tinha antes, se o servidor DHCP puder distribuir seu endereço IP antigo. Caso contrário, você está preso com um novo ;-). Tudo isso é trivial para script, realmente.
E, por exemplo, se o seu problema é a persistência das conexões ssh , sugiro que você verifique mosh .