完全关闭 Ubuntu 并远程唤醒它

完全关闭 Ubuntu 并远程唤醒它

我最近买了一台 HP Z420,8 核 32 GB 内存,并将其设置为 Ubuntu 18.04 服务器。由于它耗电量很大,我现在使用唤醒每天晚上 11 点让它入睡。

由于我很少在工作日访问它,除了偶尔远程登录来试验 VBox VM、docker 容器和 docker 机器等,所以我想让它保持睡眠到内存模式,并且只在我需要访问它时使用局域网唤醒来远程唤醒它。

这样的安排可能吗?

答案1

完全关闭 Ubuntu 并远程唤醒它

彻底关闭服务器

这个解决方案与问题不同,因为它完全关闭了服务器。它不会使其进入睡眠/挂起或休眠状态。

要关闭 Ubuntu 18.04,必须满足以下条件:

  • 该服务器必须能够ssh从另一台(本地)计算机进行访问。

我使用以下命令从本地计算机关闭服务器:

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

其中 server.address 是服务器的 IP 地址或域名。该-h选项关闭服务器。该+1选项延迟一分钟。

通过 Raspberry 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

希望这可以帮助

相关内容