Sur le serveur A, je souhaite émettre les commandes suivantes vers le serveur B via ssh.
service network stop
sleep 5
service network start
Le problème est dû au fait que j'ai émis un «arrêt» du réseau, puis ma connexion ssh actuelle est également perdue. Par conséquent, je ne peux pas exécuter les commandes suivantes (sommeil 5 et démarrage du réseau de service). Notez que je ne peux pas utiliser (redémarrage du réseau de service).
Quelqu'un at-il une solution de contournement / solution pour cela?
linux
networking
ssh
Carmen
la source
la source
Réponses:
Si vous le faites de manière interactive, pourquoi ne pas démarrer une
screen
session? Cela ressemblerait à quelque chose comme ceci:(shell scren commence)
(La session SSH se déconnecte, mais le redémarrage du réseau se poursuit dans la session écran)
(Attendez quelques secondes)
(SSH de retour dans l'hôte une fois le redémarrage terminé)
(Se reconnecter à l'écran et vérifier les erreurs)
À mon humble avis, il est toujours effrayant de redémarrer une interface réseau à distance. Que se passe-t-il quand il ne revient pas? Avez-vous une console ou d'autres moyens dans l'hôte en cas de problème?
la source
screen
lorsque je travaille sur des machines distantes. En cas de déconnexions imprévues, cela peut vous sauver la vie. Avoir également plusieurs shells actifs dans la même session peut être pratique. Vous aimerez peut-être aussi regardertmux
aussi, je ne l'ai pas utilisé moi-même mais certains le préfèrentscreen
et sa fonction principale offre les mêmes avantages.Failed to restart network.service: Unit network.service failed to load: No such file or directory.
cela fonctionne: serverfault.com/a/731120/10361systemctl restart networking
n'a pas fonctionné pour moi pour une raison quelconque entmux
session sur Ubuntu Xenial.systemctl restart network
travaillé sur CentOS 7 (OpenVZ) même pas danstmux
/screen
session. Sans perdre la connexion.Les commandes exactes disponibles pour ce faire varient en fonction de la distribution Linux. L'option qui est assez standard consiste à planifier et à "au" travail pendant 5 secondes à l'avenir pour redémarrer le réseau. Une autre consiste à utiliser la
nohup
commande.D'autres distributions ont la commande daemon pour transformer le programme résultant en un démon qui n'est plus associé au shell.
la source
Un moyen très simple de le faire est d'utiliser l'opérateur et:
la source
service network restart
?service network stop
l'interface descend,bash
reçoitSIGHUP
et aucune autre commande n'est exécutée. Suis-je en train de manquer quelque chose?Pourquoi ne pas le mettre dans un script shell et l'exécuter via SSH?
la source
Essayez ceci (peut-être en installant cron si nécessaire):
Déconnectez-vous, attendez 6 min et reconnectez-vous
la source
at
ordonnanceur n'est pas dans le package cron sur la plupart des distributions, essayez de rechercher unat
package directement.Cela fonctionne avec Debian et Ubuntu modernes, tandis que toutes les autres réponses ne fonctionneront pas.
N'oubliez pas qu'il peut falloir un peu de temps pour récupérer l'interface. Dans mon cas, environ ~ 15 secondes car j'ai un lien.
la source
Il semble que vous souhaitiez un écran ou un tmux . Ceux-ci vous permettront de préserver votre session grâce à la perte d'une connexion réseau. Ils sont vraiment très utiles, presque toutes mes sessions terminales se font par écran.
la source
par exemple
la source