现在的机器从技术上讲是可以长时间运行的,有些人为他们的计算机可以长时间的正常运行而感到自豪,另外有内核热补丁能够实现只有在硬件发生故障时才需要机器关机。机器一直开着对管理也是非常省心的,不用为周边的小事操心了。
但也有另外癖好的人,在不需要机器运行的情况下将其关机,以减少移动部件磨损同时节省电能,比如在规定的时间内唤醒备份服务器,执行备份,然后关闭它直到它要进行下一次备份;任何不需要一直运行的东西都可以将其配置成在其需要工作的时候打开,待其完成工作后将其关闭;如果可以按自己的需要开、关电脑实际上是件非常爽的事情,即便只是省了几米的路,但给人的感觉绝对是不一样的。
系统休眠
**方法一:**自动定时关机,使用 root 的 cron 定时任务,这样可以靠地关闭电脑。这个例子创建一个 root 定时任务实现在周一至周五晚上 8 点定时关机。
# crontab -e -u root
# m h dom mon dow command
0 20 * * 1-5 /sbin/shutdown -h now
或者直接写到 /etc/crontab 文件里
0 20 * * 1-5 root /sbin/shutdown -h now
方法二: 通过SSH或webmin这样工具可以透过局域网或者外网随时关机。
用SSH客户端连接到Debian主机
马上关机命令
sudo shutdown -h now
用webmin更加直观。
系统唤醒
实现自动/远程唤醒是一件很酷的事情;唤醒 Linux 计算机有时不如关闭它可靠,因此可能需要尝试不同的办法。
BIOS唤醒
BIOS 唤醒是最可靠的;DELL笔记本的BIOS 有下面这样功能,这样定时唤醒就很容易了。
局域网唤醒(Wake-On-LAN) 这是笔者用得最多的一个功能,感觉超级棒!
- 在BIOS中设置开启WOL功能;不同的机器具体位置也不一样
上图是DELL笔记本BIOS
下图是THINKPAD笔记本BIOS
2. 在Debian主机上安装Wake on Lan
sudo apt-get install wakeonlan
- 在Debian主机上安装ethtool,同时查看状况
sudo apt-get install ethtool
sudo ethtool eno1 | grep -i wake-on
Supports Wake-on: pumbg
Wake-on: g
这条命令输出的 “Supports Wake-on” 字段会告诉你你的网卡现在开启了哪些功能:
d – 禁用
p – 物理活动唤醒
u – 单播消息唤醒
m – 多播(组播)消息唤醒
b – 广播消息唤醒
a – ARP 唤醒
g – 特定数据包magic packet唤醒
s – 设有密码的特定数据包magic packet唤醒
- 下载安装windows唤醒程序wolcmd
下载链接
命令格式/例子:
wolcmd [mac address] [ip address] [subnet mask] [port number]
wolcmd 009027a324fe 192.168.1.20 255.255.255.0 8900
这个命令可以写到 bat 文件里,还可以设置自动执行。
这是一个非常有成就感的功能
- 在Mac上可以从应用商店里安装免费的Wake on Command,要注意⚠️的是mac地址一定要用":"分开,不然Wake on Command不认识,Swol不太好用。
更多信息请百度“Wake on Lan”
2023更新
在Debian 12上,默认状态电脑关机时会无法唤醒,用休眠时才能唤醒。
最好要安装 sudo apt install pm-utils才能确保休眠命令起作用。