
我最近購買了一台 8 核心、32 GB 記憶體的 HP Z420,並將其設定為 Ubuntu 18.04 伺服器。由於它消耗大量電量,我現在使用即時喚醒每晚 11 點讓它入睡。
由於我很少在工作日訪問它,除了偶爾遠端登入以試驗 VBox VM、docker 容器和 docker 機器等,因此我希望將其保持在睡眠到記憶體模式,並僅使用喚醒功能遠端喚醒它-lan 當我需要訪問它時。
這樣的安排可以嗎?
答案1
完全關閉Ubuntu並遠端喚醒它
完全關閉伺服器
該解決方案與問題不同,因為它完全關閉伺服器。它不會使其進入睡眠/掛起或休眠狀態。
要關閉 Ubuntu 18.04,必須滿足以下條件:
- 伺服器必須能夠
ssh
從另一台(本地)電腦存取。
我使用以下命令從本地電腦關閉伺服器:
ssh -t server.address "sudo /sbin/shutdown -h +1"
其中 server.address 是伺服器的 IP 位址或其網域名稱。此-h
選項會關閉伺服器電源。該+1
選項是延遲一分鐘。
從 Raspberry Pi 進行 LAN 喚醒
安裝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 上,並在 Pi 的主資料夾中命名為wake.sh。
- 在已儲存的腳本中編輯Ubuntu伺服器的IP位址和MAC位址。
- 使腳本可執行。
最後,使用以下命令呼叫腳本:
sudo ./wake.sh
希望這可以幫助