No servidor A, desejo emitir os seguintes comandos para o servidor B por meio do ssh.
service network stop
sleep 5
service network start
O problema é que eu emiti uma parada de rede, então minha conexão ssh atual também é perdida. Portanto, não consigo executar os comandos seguintes (suspensão 5 e início da rede de serviço). Observe que não posso usar (reiniciar a rede de serviço).
Alguém tem uma solução / solução alternativa para isso?
linux
networking
ssh
Carmen
fonte
fonte
Respostas:
Se você estiver fazendo isso de maneira interativa, por que não iniciar uma
screen
sessão? Seria algo como isto:(o shell scren começa)
(A sessão SSH é desconectada, mas a reinicialização da rede continua na sessão da tela)
(Aguarde alguns segundos)
(SSH de volta ao host quando a reinicialização terminar)
(Reconecte-se à tela e verifique se há erros)
IMHO, é sempre assustador reiniciar uma interface de rede remotamente. O que acontece quando ele não volta? Você tem um console ou outros meios para o host se algo ruim acontecer?
fonte
screen
durante o trabalho em máquinas remotas. No caso de desconexões não planejadas, pode salvar a vida. Também ter vários shells ativos na mesma sessão pode ser útil. Você também pode gostar de vertmux
, eu não o usei, mas alguns preferemscreen
e sua função principal oferece os mesmos benefícios.Failed to restart network.service: Unit network.service failed to load: No such file or directory.
Funciona: serverfault.com/a/731120/10361 #systemctl restart networking
não funcionou para mim por algum motivo natmux
sessão no Ubuntu Xenial.systemctl restart network
trabalhou no CentOS 7 (OpenVZ) nem emtmux
/screen
sessão. Sem perder a conexão.Os comandos exatos disponíveis para isso variam com base na distribuição do Linux. Na opção que é bastante padrão é agendar e "at" o trabalho por 5 segundos no futuro para reiniciar a rede. Outro é usar o
nohup
comandoOutras distribuições têm o comando daemon para transformar o programa resultante em um daemon que não está mais associado ao shell.
fonte
Uma maneira muito simples de fazer isso é usando o operador e:
fonte
service network restart
?service network stop
a interface fica inativa,bash
recebeSIGHUP
e nenhum outro comando é executado. Estou esquecendo de algo?Por que não colocá-lo em um script de shell e executá-lo via SSH?
fonte
Tente isso (talvez seja necessário instalar o cron, se necessário):
Então saia, espere 6 min e volte a entrar
fonte
at
agendador não está no pacote cron na maioria das distribuições; tente procurarat
diretamente um pacote.Isso funciona com o Debian e Ubuntu modernos, enquanto todas as outras respostas não funcionam.
Lembre-se de que pode demorar um pouco para recuperar a interface. No meu caso, cerca de 15 segundos, pois tenho um vínculo.
fonte
Parece que você quer tela ou tmux . Isso permitirá que você preserve sua sessão com a perda de uma conexão de rede. Eles são realmente bastante úteis, quase todas as minhas sessões de terminal são através da tela.
fonte
por exemplo
fonte