web-dev-qa-db-ja.com

電源管理-アクセス時にサーバーをスリープ/ウェイクアップ

UbuntuがインストールされたヘッドレスHP Proliant Microserverがあります。このマシンにはメディアを提供するsamba共有があり、通常はrdpまたはsshします。今私の問題は、マシンをスリープモードにしたいので(状態はRAMからハードドライブに保存されます)、アイドリングの1時間後にオフになっているように見えます。

LAN経由でsamba共有にアクセスしようとする場合は、ウェイクアップさせてください。マザーボードがこの機能をサポートするようになりましたが、これを簡単に達成するための正しい方向を教えてくれますか?

ありがとう

9
KP65

私がウェブ上で見つけた最高の指示は WOLのXBMC wiki でした。要するに(リンクの詳細):

  1. マザーボードでWOLを有効にする必要があります。
  2. Ethtoolをインストールします:Sudo apt-get install ethtool;
  3. Wake-on-LANオプションの設定:Sudo ethtool -s eth0 wol g;
  4. Initスクリプトを使用して、システムの起動時に有効にします。 wikiリンクに初期化スクリプトがあります。

未テスト; wikiリンクからの情報

3
Rinzwind

Dd-wrtに依存しない、アクセス時にメディアサーバーを自動的にウェイクアップするソリューションが必要であると判断しました。

私はRaspberry Piを持っているので、それは低電力であり、常にLinuxマシンから実行できるので、常に使用することを気にしないので使用しました。

私が自分で見つけた最後の解決策は、小さなbashスクリプトを書くことでした。 raspberry-piの依存関係は、etherwakeとtcpdumpです。どちらもデフォルトではrasbianにインストールされていません。また、他の投稿で述べたように、サーバー上でWake On Lanを有効にする必要があります。

Sudo apt-get install etherwake
Sudo apt-get install tcpdump

ウェイクスクリプトは次のとおりです。

nano ~/wol.sh

次に:

#!/bin/bash

pingInterval=60 #time interval, in seconds, between checks that the server is still awake.
target=192.168.x.x  #WOL target ip address
targetMAC=00:11:22:33:44:55  #WOL target MAC

wake () {
    tcpdump -i eth0 -c 1 -p Host $target
    etherwake $targetMAC
    #echo WOL sent to $target at $targetMAC
return
}

while sleep $pingInterval; do
varPing=`ping -s 1 -c 2 $target > /dev/null; echo $?`
    if [ $varPing -eq 0 ]; then
        #echo ping success
    else
        #echo ping fail
        wake
    fi
done

主なアイデアは、サーバーに対する単一のarp要求に気付いた場合にサーバーをウェイクするraspberry-piから実行することです。サーバーが起動している場合、サーバーはarpリクエストをリッスンしませんが、時々数回pingを送信して、まだ起動していることを確認します。

ファイルにwol.shという名前を付け、実行可能にしました。次に、それをSudo crontabに入れて、rootとして@rebootを起動します。これは、eth0およびetherwakeをリッスンするために昇格されたアクセスを必要とするtcpdump用です。

Sudo chmod +x /home/pi/wol.sh
Sudo crontab -e

これを一番下に追加します

@reboot sh /home/pi/wol.sh > /dev/null
2
Travis Clark

スリープモード以外に、ハードディスクに状態を保存してサーバーを完全にシャットダウンするため、探しているのは休止状態です。

多くの人が指摘しているように、アンスウェはWOL(Wake On Lan)です。これについては多くのチュートリアルがありますが、主に次の設定が必要です。

  • ルーターは(WOLパケットが呼び出されるので)マジックパケットをサーバーにバイパスする必要があるため、ポート転送を行う必要があります。通常、LANセクションにあります。デフォルトのポートは7と9です。
  • 電源がオフの場合、マザーボードはLANポートでリッスンする必要があります。最新のMBのほとんどはこの機能を提供していますが、デフォルトでは無効になっています。確認してください!私の場合、これは「Power on by Ring on Lan」と呼ばれます。

サーバーは、非アクティブな状態が1時間続くとシステムを停止するために適切な電源管理構成よりも多くの設定を必要としません(システム>管理>電源管理から実行できます)。

システムの休止状態を解除する必要があるため、WOLパケットを送信した後、しばらく待たなければならないことは明らかです。

幸運を

2
sergio.hs84

Wake On Lanが鍵です。今日のほぼすべてのカードがすべてのモードをサポートしています(ただし、Linuxではサポートされていません:()。

最も簡単な解決策は、Wake On LanモードをサポートするLinuxドライバーが動作するカードです。pumbg in ethtool、ユニキャストモードのようなものが必要です。そのため、ネットワークアドレスにアクセスするとすぐにコンピューターが起動します。しかし、Linuxでサポートされているカードのリストを取得するのはさらに困難です。私が見つけたのは、Intel Gigabit Netzwerkadapter Pro/1000 GT PCIです。

回避策は、すべてのモードをサポートしていないカードがある場合です:ほとんどすべてのLinuxドライバーはgモード=>マジックパケットをサポートします。したがって、使用する前に明示的にサーバーの電源を入れる必要があります。

0
aha

サーバーでWoLを有効にして特定のプロトコルトラフィックにウェイクアップするには、ルーターで実行されているスクリプトのようなものが必要になります。

ウェブサーバーのウェイクアップ

0
Cas