Agendando uma reinicialização em um servidor Ubuntu localizado remotamente

17

Eu trabalho em um servidor ubuntu localizado em um local para onde geralmente não vou. Eu uso o ssh sobre o openvpn para acessá-lo. A máquina possui várias interfaces com fio, muitas rotas estáticas e vários gateways padrão para a WAN. Eu mudo frequentemente endereços e rotas de interface. Na maioria das vezes, as alterações que faço são temporariamente - uma reinicialização redefiniria as experiências que fiz. Em alguns casos, algumas dessas modificações deram errado e a máquina ficou offline. Nesses casos, tive que chamar alguém no local em que o servidor está localizado para enviar a máquina para uma reinicialização.

Agora eu gostaria de agendar uma reinicialização - digamos que após 2 horas a máquina deve entrar em um ciclo de reinicialização. E nessas duas horas posso fazer as experiências temporárias que quiser. Se todas as alterações temporárias forem bem-sucedidas, eu devo impedir que a reinicialização "após 2 horas" ocorra. Então, o que eu quero é:

  1. Como dizer ao servidor para reiniciar após um período de certificação?
  2. Se eu decidir que a máquina não deve entrar em uma reinicialização, poderei cancelá-la.
nixnotwin
fonte

Respostas:

14

No tipo de terminal shutdown -r 10 Waiting 10 minutes before the restart&que fará o servidor reiniciar em 10 minutos, transmita uma mensagem explicando isso e, pressionando control + c, interromperá a solicitação de reinicialização.

No tipo de terminal shutdown -r 18:00 Rebooting at 18:00 hours&que fará o servidor reiniciar às 18:00 horas, transmitirá uma mensagem explicando isso e pode ser interrompida com o controle + c.

Você também pode interromper qualquer solicitação de desligamento / reinicialização no seu terminal "trabalhando" com shutdown -a.

Bruno Pereira
fonte
2
Isso é um pouco problemático, pois é interativo e bloqueia o shell que você está executando. Não tenho certeza se isso funcionaria previsivelmente no SSH se a sessão cair.
Alain O'Dea
Não consegui encontrar nenhuma combinação de nohupe sudoisso faria esse trabalho se executado a partir de uma sessão ssh normal como um usuário normal do grupo de administradores.
HDave
Isso poderia ser executado em combinação com Screen para permitir que o comando fosse aplicado e a sessão ssh descartada?
Andy Davies
30

Você também pode usar atpara agendar reinicializações. Por exemplo, sudo at 22:00para executar o comando às 22:00 como root. Em seguida, digite o comando que deseja executar: /sbin/shutdown -r nowe termine com ctrl-d. Se você decidir não executar este comando, execute sudo atrm 1para excluir o primeiro na atfila. Com sudo atqvocê pode ver a fila.

kimda
fonte
Esta solução é perfeita!
Sukima 08/01
5
Isso deve ser marcado como a resposta correta! A atfamília de comandos é algo que todo administrador de servidor deve saber.
usar o seguinte código
2
caso você seja novo at, primeiro execute sudo at 22:00. Isso leva você a um tipo de concha. Então você insere o comando e ctrl-dsai. Veja também mixeduperic.com/ubuntu/…
Tim Richardson