![完全关闭 Ubuntu 并远程唤醒它](https://linux22.com/image/913220/%E5%AE%8C%E5%85%A8%E5%85%B3%E9%97%AD%20Ubuntu%20%E5%B9%B6%E8%BF%9C%E7%A8%8B%E5%94%A4%E9%86%92%E5%AE%83.png)
我最近买了一台 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 地址。要使用此脚本:
- 将脚本保存在 Pi 的主文件夹中,名称为 wake.sh。
- 在保存的脚本中编辑Ubuntu服务器的IP地址和MAC地址。
- 使脚本可执行。
最后,使用以下命令调用脚本:
sudo ./wake.sh
希望这可以帮助