Jak „zrestartować” konkretny interfejs sieciowy na RHEL?

18

W RHEL zamiast używania service network restartpolecenia, w jaki sposób mogę zrestartować określony interfejs sieciowy, powiedzmy „eth1”, używając tylko jednego polecenia.

„Tylko jedno polecenie”, ponieważ jest to jedyny interfejs, nad którym sshrównież pracuje mój . Więc jeśli mam zamiar użyć: ifdowni wtedy ifupnigdy nie będę w stanie nacisnąć ifuppolecenia, ponieważ moje sshzostało zakończone raz po ifdown eth1poleceniu.

Powinno więc być jedno polecenie, które pozwoli mi całkowicie obniżyć, a następnie wywołać interfejs obsługujący moje obecne sshpołączenie. Więc nie muszę się martwić, że połączenie zostanie całkowicie utracone na moim serwerze.

Masz jakiś pomysł?

夏 期 劇場
źródło

Odpowiedzi:

27

Możesz użyć:

ifdown eth1 && ifup eth1

Jako pojedyncze polecenie. && uruchamia tylko jedno polecenie, a następnie drugie, jeśli pierwsze polecenie się powiedzie . Jeśli musisz używać sudo, upewnij się, że używasz go przed każdym poleceniem:

sudo ifdown eth1 && sudo ifup eth1

Tak długo, jak interfejs jest skonfigurowany tak, aby posiadał niezbędny adres IP i trasę zgodną z bieżącą konfiguracją, połączenie ssh nie zostanie zerwane.

Jeśli martwisz się użyciem go na serwerze produkcyjnym, do którego nie masz innej metody dostępu, jest to zrozumiałe. Chociaż polecenie wykonuje dokładnie to, co chcesz, bardzo łatwo jest mieć błąd konfiguracji, który jest zauważany dopiero po uruchomieniu tego polecenia. Jeśli nie masz alternatywnej metody dostępu (na przykład konsoli pozapasmowej lub dysku SSHD działającego na innym interfejsie), najbezpieczniej jest tego nie robić .

Często używam tej techniki do „restartowania” interfejsu, ale ogólnie mam dostęp do zapasowej metody dostępu na wszelki wypadek.

blahnana
źródło
to plus zarządzanie OOB FTW
dmourati
3
Może sugeruję ifdown eth1 && ifup eth1, że w ten sposób ifup nie uruchomi się, chyba że ifdown się powiedzie, natomiast ;ifup uruchomi się niezależnie od tego, w jaki sposób ifdown powrócił.
zamnuts
@zamnuts Odpowiedź została zredagowana, aby uwzględnić to :)
David Gardner,
1

Możesz „zrestartować” jeden interfejs, wydając następujące polecenia:

# ifdown eth1
# ifup eth1

Następnie możesz sprawdzić, czy nowa konfiguracja jest aktywna

# ip a
jerQ
źródło
Przepraszam, ale potrzebuję ... „Tylko jedno polecenie”, ponieważ jest to jedyny interfejs, w którym działa również mój ssh. Więc jeśli mam zamiar użyć: ifdown, a następnie ifup, nigdy nie będę mógł użyć polecenia ifup, ponieważ mój ssh został zakończony jeden raz po poleceniu ifdown eth1. Powinno więc być jedno polecenie, które mogę obniżyć, a następnie wywołać interfejs obsługujący moje bieżące połączenie ssh. Więc nie muszę się martwić o utratę połączenia z moim serwerem.
夏 期 劇場
Możesz zrobić z nich skrypt powłoki i uruchomić go, twoja sesja ssh nie powinna zostać zakończona, nawet jeśli nastąpi krótkie zaciemnienie sieci. Inną opcją jest uruchomienie tego skryptu w sesji ekranowej, gdzie zostanie on wykonany do końca, nawet jeśli sesja ssh się nie powiedzie.
jerQ
1
czy to pomoże? ifdown eth1 ; ifup eth1?
夏 期 劇場
0

Czy próbujesz zmienić adres IP (lub inny parametr interfejsu w tym zakresie) interfejsu na zdalnym komputerze? Jeśli odpowiedź brzmi „tak”, możesz wypróbować jedną z następujących opcji:

Fajną metodą jest użycie narzędzia ekranowego do utworzenia sesji poprzez wpisanie „screen”. Po ponownym uruchomieniu usługi sieciowej i zerwaniu połączenia SSH użyj screen -ls, aby sprawdzić, czy sesja jest nadal aktywna (ale odłączona) i screen -r, aby wznowić odłączoną sesję. Działa to w przypadku, gdy w pliku konfiguracyjnym interfejsu nie ma błędu, tzn. Usługa sieciowa została zrestartowana pomyślnie.

Możesz także użyć następującej sztuczki:

$ cp -v current_conf_file current_conf_file.bak
$ echo "mv current_conf_file.bak current_conf_file && service network restart" | at now+10min

Następnie przejdź do edycji pliku konfiguracji interfejsu i zrestartuj usługę sieciową. W przypadku pomyłki wystarczy poczekać 10 minut, aby poprzednia konfiguracja została ponownie zastosowana i usługa sieciowa została ponownie uruchomiona.

IG83
źródło
-3

wszystkie odpowiedzi dotyczące ifup i ifdown nie są zgodne z pytaniem. ifup i ifdown tylko zwiększają i zmniejszają interfejs, nie wpływa to na usługę sieciową. dla usługi sieci linux nie oznacza tylko konfiguracji interfejsu IP.

sprawdź /etc/rc.d/network skrypt, aby uzyskać więcej informacji.

Steven Liang
źródło
1
Nie jestem pewien, o co ci chodzi. OP nie pyta o ponowne uruchomienie usługi sieciowej , a jedynie o ponowne uruchomienie pojedynczego interfejsu . Co więcej, PO zaakceptował odpowiedź, która wyraźnie używa poleceń, które są ci zalecane. -1 ode mnie.
MadHatter obsługuje Monikę