web-dev-qa-db-ja.com

SSHによるネットワークの再起動

サーバーAで、sshを介してサーバーBに次のコマンドを発行します。

service network stop
sleep 5
service network start

問題は、ネットワークを「停止」したため、現在のSSH接続も失われるためです。したがって、後続のコマンドを実行できません(sleep 5とservice network start)。 (サービスネットワーク再起動)は使用できませんのでご注意ください。

誰かがこれの回避策/解決策を持っていますか?

10
Carmen

これをインタラクティブに行う場合は、screenセッションを開始してみませんか?次のようになります。

screen

(scren Shellが起動します)

service network restart

(SSHセッションは切断されますが、ネットワークの再起動はスクリーンセッションで続行されます)

(数秒待ってください)

(再起動が完了すると、SSHがホストに戻ります)

screen -r

(画面に再接続し、エラーを確認します)

私見、ネットワークインターフェースをリモートで再起動することは常に怖いです。復旧しない場合はどうなりますか?何か悪いことが起こった場合、ホストにコンソールまたは他の手段がありますか?

8
Corey S.

これを行うために使用できる正確なコマンドは、Linuxディストリビューションによって異なります。かなり標準的であるオプションは、ネットワークを再起動するために5秒間スケジュールして「at」ジョブを実行することです。もう1つは、Nohupコマンドを使用することです。

echo "sleep 5; /etc/init.d/networking start" | at now
Nohup sh -c 'sleep 5; /etc/init.d/networking start' &

他のディストリビューションには、結果のプログラムをシェルに関連付けられていないデーモンに変えるデーモンコマンドがあります。

5
Seth Robertson

これを行う非常に簡単な方法は、and演算子を使用することです。

service network stop && sleep 5 && service network start
2
Jordan S. Jones

それをシェルスクリプトに入れて、SSH経由で実行しませんか?

これを試してください(必要に応じて、おそらくcronをインストールします)。

$ at now+5min
at> service network stop
at> sleep 5
at> service network start
at> [control-D]

次にログアウトし、6分待ってから再ログインします

1

これは最新のDebianおよびUbuntuで機能しますが、他のすべての回答は機能しません。

screen
Sudo ifdown --exclude=lo -a && Sudo ifup --exclude=lo -a

インターフェイスを元に戻すには少し時間がかかる場合があることに注意してください。私の場合、絆があるので約15秒です。

1
sorin

screen または tmux のいずれかが必要なようです。これにより、ネットワーク接続が失われてもセッションを維持できます。それらは本当に非常に便利です。私の端末セッションのほとんどすべてが画面経由です。

0
Jeff Tang
#!/bin/sh

# CentOS Linux release 7.4.1708 (Core) 

# 1. restart the network service
# 2. take the NIC [ens32] down
# 3. bring the NIC [ens32] up

systemctl restart network \
  && ifdown ens32 \
  && ifup ens32
#!/bin/sh

# Linux far-seer-01 4.9.0-8-AMD64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux

/etc/init.d/networking restart \
    && ifdown eth0 \
    && ifup eth0

例えば.

[root@localhost tmp]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope Host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope Host 
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:b3:74:da brd ff:ff:ff:ff:ff:ff
    inet 192.168.224.129/24 brd 192.168.224.255 scope global dynamic ens32
       valid_lft 1796sec preferred_lft 1796sec
    inet6 fe80::f06e:8b57:23fc:b25/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost tmp]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@localhost tmp]# cat net.sh 
#!/bin/sh

# 1. restart the network service
# 2. take the NIC [ens32] down
# 3. bring the NIC [ens32] up

systemctl restart network \
  && ifdown ens32 \
  && ifup ens32
[root@localhost tmp]# sh net.sh 
Device 'ens32' successfully disconnected.
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/17)
$ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
$ cat net.sh 
#!/bin/sh

# Linux far-seer-01 4.9.0-8-AMD64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux

/etc/init.d/networking restart \
    &&ifdown eth0 \
    && ifup eth0
$ sh net.sh 
[ ok ] Restarting networking (via systemctl): networking.service.
ifdown: interface eth0 not configured
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:0c:29:8a:67:72
Sending on   LPF/eth0/00:0c:29:8a:67:72
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
DHCPREQUEST of 192.168.224.128 on eth0 to 255.255.255.255 port 67
DHCPOFFER of 192.168.224.128 from 192.168.224.254
DHCPACK of 192.168.224.128 from 192.168.224.254
bound to 192.168.224.128 -- renewal in 847 seconds.
0
ROY