Ubuntuを完全にシャットダウンし、リモートで起動する

Ubuntuを完全にシャットダウンし、リモートで起動する

最近、8コア、32GBメモリのHP Z420を入手し、Ubuntu 18.04サーバーとしてセットアップしました。消費電力がかなり大きいため、rtcwake毎晩午後11時に寝かせる。

VBox VM、docker コンテナー、docker マシンなどを試すために時々リモートでログインする以外は、平日はほとんどアクセスしないので、メモリ スリープ モードにしておき、アクセスする必要があるときにのみ Wake-on-LAN を使用してリモートで起動したいと思います。

そのような取り決めは可能でしょうか?

答え1

Ubuntuを完全にシャットダウンし、リモートで起動する

サーバーを完全にシャットダウンする

この解決策はサーバーを完全にシャットダウンするため、質問とは異なります。スリープ/サスペンドまたは休止状態にはなりません。

Ubuntu 18.04 をシャットダウンするには、次の条件を満たす必要があります。

  • サーバーはssh別の(ローカル)コンピューターからアクセスできる必要があります。

ローカル コンピューターからサーバーをシャットダウンするには、次のコマンドを使用します。

ssh -t server.address "sudo /sbin/shutdown -h +1"

ここで、server.address はサーバーの IP アドレスまたはドメイン名です。この-hオプションはサーバーの電源をオフにします。この+1オプションは 1 分間の遅延です。

Raspberry Pi からの Wake on Lan

etherwakeRaspberry Pi にインストールします。Pi と Ubuntu サーバーがイーサネット ケーブルで接続されていることを確認します。

Ubuntu サーバーで次のコマンドを使用して LAN ポートの MAC アドレスを確認します。

ifconfig

次のようになります:

ether AA:BB:CC:DD:EE:FF   txqueuelen 1000  (Ethernet)

Pi から次のコマンドを使用します。

sudo etherwake -i eth0 AA:BB:CC:DD:EE:FF

ここで、はeth0Pi のイーサネット ポートであり、はAA:BB:CC:DD:EE:FFUbuntu サーバーのイーサネット ポートの MAC アドレスです。

Pi での入力を省くために、小さなスクリプトを作成しました。

#!/bin/bash
# wake.sh

if ping -c 1 10.42.0.1 &> /dev/null
then
  echo "Server is ON already!"
else
  echo "Turning Server ON now."
  etherwake -i eth0 AA:BB:CC:DD:EE:FF
fi

ここで、10.42.0.1 は Ubuntu サーバーの IP アドレスです。このスクリプトを使用するには:

  1. スクリプトを Pi のホーム フォルダーに wake.sh という名前で保存します。
  2. 保存したスクリプトで、Ubuntu サーバーの IP アドレスと MAC アドレスを編集します。
  3. スクリプトを実行可能にします。

最後に、次のようにスクリプトを呼び出します。

sudo ./wake.sh

お役に立てれば

関連情報