Planification d'un redémarrage sur un serveur Ubuntu situé à distance

17

Je travaille sur un serveur ubuntu situé dans un endroit où je ne vais généralement pas. J'utilise ssh sur openvpn pour y accéder. La machine possède plusieurs interfaces filaires, de nombreuses routes statiques et plusieurs passerelles par défaut vers le WAN. Je change fréquemment d'adresse et de route d'interface. La plupart du temps, les changements que je fais sont temporairement - un redémarrage réinitialiserait les expériences que j'ai faites. Dans certains cas, certaines de ces modifications ont mal tourné et la machine est hors ligne. Dans de tels cas, j'ai dû appeler quelqu'un à l'endroit où se trouve le serveur pour envoyer la machine à un redémarrage.

Maintenant, je voudrais planifier un redémarrage - disons qu'après 2 heures, la machine devrait entrer dans un cycle de redémarrage. Et pendant ces deux heures, je peux faire toutes les expériences temporaires que je veux. Si tous les changements temporaires réussissent, je devrais pouvoir empêcher le redémarrage "après 2 heures" de se produire. Donc ce que je veux c'est:

  1. Comment dire au serveur de redémarrer après un temps certian?
  2. Si je décide que la machine ne doit pas redémarrer, je devrais pouvoir l'annuler.
nixnotwin
la source

Réponses:

14

Sur le type de terminal shutdown -r 10 Waiting 10 minutes before the restart&qui fera redémarrer le serveur dans 10 minutes, diffusez un message expliquant cela et en appuyant sur Ctrl + C, vous interromprez la demande de redémarrage.

Sur le type de terminal shutdown -r 18:00 Rebooting at 18:00 hours&qui fera redémarrer le serveur à 18h00, diffusera un message expliquant cela et pourra être interrompu avec control + c.

Vous pouvez également interrompre toute demande d'arrêt / redémarrage sur votre terminal "de travail" avec shutdown -a.

Bruno Pereira
la source
2
C'est un peu problématique car il est interactif et bloque le shell que vous exécutez. Je ne sais pas si cela fonctionnerait de manière prévisible sur SSH si la session tombe.
Alain O'Dea
Je n'ai pu trouver aucune combinaison de nohupet sudocela ferait fonctionner cela si exécuté à partir d'une session ssh normale en tant qu'utilisateur de groupe d'administration normal.
HDave
Cela pourrait-il être exécuté en combinaison avec Screen pour permettre à la commande d'être appliquée et la session ssh abandonnée?
Andy Davies
30

Vous pouvez également utiliser atpour planifier des redémarrages. Par exemple, sudo at 22:00pour exécuter la commande à 22h00 en tant que root. Entrez ensuite la commande que vous souhaitez exécuter: /sbin/shutdown -r nowet terminez par ctrl-d. Si vous décidez de ne pas exécuter cette commande, exécutez sudo atrm 1pour supprimer la première de la atfile d'attente. Avec sudo atqvous pouvez voir la file d'attente.

kimda
la source
Cette solution est parfaite!
Sukima
5
Cela devrait être marqué comme la bonne réponse! La atfamille de commandes est quelque chose que tout administrateur de serveur doit savoir.
Enregistrez le
2
au cas où vous êtes nouveau at, exécutez d'abord sudo at 22:00. Cela vous emmène dans une sorte de coquille. Ensuite, vous entrez la commande et ctrl-dpour quitter. Voir aussi mixeduperic.com/ubuntu/…
Tim Richardson