USB NICを搭載したヘッドレスDebian 11サーバーのネットワーク初期化の問題

USB NICを搭載したヘッドレスDebian 11サーバーのネットワーク初期化の問題

編集する

私がすることは次のとおりです(私の底まで噛まないでください):

  1. restart_network.sh私のディレクトリに1つを作成しました/root。内部:
#!/bin/bash

while ! (grep -q "ttl" <<< "$(ping -c2 192.168.1.150)")
do
 ifup enx207bd2248c85
done
  1. 組み込み/etc/systemd/system/fixlan.service
[Unit]

Description=Fix network incase the USB-NIC does not start.
#because I want it to first try to activate the USB-NIC alone
After=networking.service
#If didn't succeed, at least wait for network before starting all
#Nextcloud services (because it's the designation of the server)
Before=snap.nextcloud.mdns-publisher.service snap.nextcloud.redis-server.service snap.nextcloud.mysql.service snap.nextcloud.renew-certs.service snap.nextcloud.apache.service snap.nextcloud.logrotate.service snap.nextcloud.nextcloud-fixer.service snap.nextcloud.php-fpm.service

[Service]

ExecStart=/root/restart_network.sh

私は体系化されたサービスを作ったことがなく、私が正しくやっているのかわかりません。

編集する

ヘッドレスDebian 11サーバーがあります。ネットワークカードが故障してUSBネットワークカードを取り付けました。時々(5回目の起動ごとに)ネットワークカードが起動しないことがあります。ログインして

ifup enx207bd2248c85

ネットワーク カードが IP アドレスを取得し、関連するすべてのサービスを再起動できます。

したがって、アイデアは次のように行うことです。

if (grep -q "ttl" <<< "$(ping -q -c2 192.168.1.151)"); then
 reboot now;
fi

起動スクリプトとして何をすべきかわかりません(起動スクリプトを追加)。これでうまくいくかもしれませんが、システムが再起動ループに入る可能性があります。それでは、もっと良い方法があると思いますか?おそらく

if (grep -q "ttl" <<< "$(ping -q -c2 192.168.1.151)"); then
# restart all services
fi

だから私は何をすべきかわかりません...

助けてください。

ベストアンサー1

だから私はrunを使用しcrontabて追加しました。述べたように、スクリプトは次のようになります。@reboot/root/restart_network.sh

#!/bin/bash

while ! (grep -q "ttl" <<< "$(ping -c2 192.168.1.150)")
do
 ifup enx207bd2248c85
 systemctl restart snap.nextcloud.* #added just in case...
done

おすすめ記事