web-dev-qa-db-ja.com

Ubuntu 18.04サーバーをrtcwakeでスリープ状態にして、Wake on Lanでウェイクアップすることができます

最近、8コアと32 GBのメモリを備えたHP Z420を入手し、Ubuntu 18.04サーバーとしてセットアップしました。大量の電力を消費するため、現在は rtcwake を使用して11時にスリープ状態にしていますPM毎晩。

VBox VM、Dockerコンテナー、Dockerマシンなどを試すために時々リモートでログインすることを除いて、平日にアクセスすることはめったにないので、スリープモードでメモリモードに保ち、ウェイクオンを使用してリモートでのみウェイクアップします。 -lanにアクセスする必要がある場合。

そのような手配は可能ですか?

1
Ben Z.

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

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

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

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

  • サーバーには、別の(ローカル)コンピューターからのsshアクセス権が必要です。

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

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

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

ラズベリーPiからウェイクオンラン

Raspberry Piにetherwakeをインストールします。 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

どこ eth0はPiのイーサネットポートであり、AA:BB:CC:DD:EE:FFは、Ubuntuサーバーのイーサネットポートの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

お役に立てれば

1
user68186