电源管理-访问时睡眠/唤醒服务器


9

我有安装了ubuntu的无头HP Proliant Microserver。这台机器在服务媒体上具有samba共享,我通常通过rdp或ssh进入。现在我的问题是我希望机器进入睡眠模式(因此状态从ram保存到硬盘驱动器),并且在闲置一个小时后似乎已关闭。

如果尝试通过LAN访问samba共享,我希望它能唤醒。现在我的主板支持此功能,有人可以指出正确的方向来轻松实现此功能吗?

谢谢

Answers:


3

我在网上找到的最好的说明是WOLXBMC Wiki。简而言之(链接中的更多信息):

  1. 您需要在主板上启用WOL。
  2. 安装Ethtool:sudo apt-get install ethtool;
  3. 设置网络唤醒选项:sudo ethtool -s eth0 wol g;
  4. 在系统启动时使用init脚本启用它。Wiki链接中有一个初始化脚本。

未经测试;Wiki链接中的信息


2

除了睡眠模式之外,您想要的是休眠状态,因为您想将状态保存在硬盘中并完全关闭服务器。

因此,正如许多人指出的那样,答案是WOL(局域网唤醒)。关于它有很多教程,但主要是您需要设置以下内容:

  • 您的路由器必须绕过Magic数据包(称为WOL数据包)到您的服务器,因此您需要进行端口转发。它通常位于LAN部分。默认端口是7和9。
  • 关闭电源后,您的主板需要在LAN端口上监听。大多数现代MB提供此功能,但默认情况下处于禁用状态。核实!在我的情况下,它被称为“通过局域网上的环上电源”。

在一个小时的闲置状态下,服务器不需要进行比适当的电源管理配置更多的设置即可使系统停机(可以通过系统>管理>电源管理来完成)。

显然,在发送WOL数据包后,您必须等待一段时间,因为您的系统需要进行休眠模式,这可能需要花费一些时间。

祝好运


2

我决定我想要一个不依赖于dd-wrt的访问时自动唤醒媒体服务器的解决方案。

我有一个树莓派,所以我用它,因为它功耗低,我不介意一直保持它运行,当然它可以在任何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

主要想法是,它是从我的raspberry-pi运行的,如果它注意到对服务器的一个arp请求,它将唤醒服务器。如果服务器处于唤醒状态,则它将不会监听arp请求,但会不时发送一些ping命令,以确保其仍处于唤醒状态。

我将文件命名为wol.sh并使其可执行。然后将其放在sudo crontab中,以root身份启动@reboot。这是针对tcpdump的,它需要提升的访问权限才能监听eth0和etherwake。

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

将此添加到底部

@reboot sh /home/pi/wol.sh > /dev/null

0

在服务器上启用WoL使其唤醒特定协议流量后,您将需要在路由器上运行的脚本,该脚本具有数据包规则,并且可以在收到请求时发送WoL魔术数据包。

Web服务器唤醒示例


0

唤醒局域网是关键,当今几乎所有卡都支持所有模式(但在Linux :()中不支持。

最简单的解决方案是使用支持Linux唤醒模式的可运行Linux驱动程序的卡:pumbg在中ethtool,您需要单播模式之类的东西。因此,只要您访问计算机的网络地址,计算机就会启动。但是要获得Linux支持的卡列表更加困难,我发现的是英特尔千兆位Netzwerkadapter Pro / 1000 GT PCI。

一种解决方法是,如果您的卡不支持所有模式:几乎所有的Linux驱动程序都支持g模式=>魔术包。因此,在使用服务器之前,必须明确打开服务器的电源。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.