Auf Server A möchte ich die folgenden Befehle über ssh an Server B senden.
service network stop
sleep 5
service network start
Das Problem ist, dass ich einen Netzwerkstopp ausgegeben habe und dann auch meine aktuelle SSH-Verbindung unterbrochen wird. Daher kann ich die nachfolgenden Befehle nicht ausführen (Sleep 5 und Start des Servicenetzwerks). Beachten Sie, dass ich nicht verwenden kann (Neustart des Servicenetzwerks).
Hat jemand eine Problemumgehung / Lösung dafür?
linux
networking
ssh
Carmen
quelle
quelle
Antworten:
Wenn Sie dies interaktiv tun, warum nicht eine
screen
Sitzung starten ? Es würde ungefähr so aussehen:(Scren Shell startet)
(Die SSH-Sitzung wird getrennt, aber der Neustart des Netzwerks wird in der Bildschirmsitzung fortgesetzt.)
(Warten Sie einige Sekunden)
(SSH zurück in den Host, sobald der Neustart abgeschlossen ist)
(Zum Bildschirm erneut anschließen und auf Fehler prüfen)
IMHO ist es immer beängstigend, eine Netzwerkschnittstelle remote neu zu starten. Was passiert, wenn es nicht wieder auftaucht? Haben Sie eine Konsole oder andere Mittel im Host, wenn etwas Schlimmes passiert?
quelle
screen
arbeite immer durch, wenn ich an entfernten Maschinen arbeite. Bei ungeplanten Unterbrechungen kann dies lebensrettend sein. Es kann auch praktisch sein, mehrere aktive Shells in derselben Sitzung zu haben. Vielleichttmux
möchten Sie es sich auch ansehen , ich habe es nicht selbst verwendet, aber einige bevorzugen esscreen
und seine Kernfunktion bietet die gleichen Vorteile.Failed to restart network.service: Unit network.service failed to load: No such file or directory.
Das funktioniert: serverfault.com/a/731120/10361systemctl restart networking
hat aus irgendeinem Grund in einertmux
Sitzung unter Ubuntu Xenial nicht für mich funktioniert .systemctl restart network
arbeitete unter CentOS 7 (OpenVZ) nicht einmal intmux
/screen
session. Ohne die Verbindung zu verlieren.Die genauen verfügbaren Befehle variieren je nach Linux-Distribution. Eine Option, die ziemlich Standard ist, besteht darin, einen Job für 5 Sekunden in der Zukunft zu planen und zu "at", um das Netzwerk neu zu starten. Eine andere Möglichkeit besteht darin, den
nohup
Befehl zu verwenden.Andere Distributionen haben den Befehl daemon, um das resultierende Programm in einen Daemon umzuwandeln, der der Shell nicht mehr zugeordnet ist.
quelle
Eine sehr einfache Möglichkeit, dies zu tun, ist die Verwendung des Operators und:
quelle
service network restart
?service network stop
die Schnittstelle ausgefallen,bash
empfangenSIGHUP
und es werden keine anderen Befehle ausgeführt. Vermisse ich etwasWarum nicht in ein Shell-Skript einfügen und das über SSH ausführen?
quelle
Versuchen Sie Folgendes (installieren Sie bei Bedarf möglicherweise cron):
Dann abmelden, 6 Minuten warten und sich erneut anmelden
quelle
at
Scheduler befindet sich in den meisten Distributionen nicht im Cron-Paket. Suchen Sieat
direkt nach einem Paket.Dies funktioniert mit modernem Debian und Ubuntu, während alle anderen Antworten nicht funktionieren.
Bitte beachten Sie, dass es einige Zeit dauern kann, bis die Benutzeroberfläche wieder verfügbar ist. In meinem Fall ca. 15 Sekunden, da ich eine Bindung habe.
quelle
Es hört sich so an, als ob Sie entweder Bildschirm oder tmux wollen . Auf diese Weise können Sie Ihre Sitzung durch den Verlust einer Netzwerkverbindung beibehalten. Sie sind wirklich sehr nützlich, fast alle meine Terminalsitzungen finden über den Bildschirm statt.
quelle
z.B
quelle