不要成為一個(gè)電能浪費(fèi)者。如果你的電腦不需要開機(jī)就請(qǐng)把它們關(guān)機(jī)。出于方便和計(jì)算機(jī)宅的考慮,你可以通過配置你的 Linux 計(jì)算機(jī)實(shí)現(xiàn)自動(dòng)喚醒和關(guān)閉。
寶貴的系統(tǒng)運(yùn)行時(shí)間
有時(shí)候有些電腦需要一直處在開機(jī)狀態(tài),在不超過電腦運(yùn)行時(shí)間的限制下這種情況是被允許的。有些人為他們的計(jì)算機(jī)可以長(zhǎng)時(shí)間的正常運(yùn)行而感到自豪,且現(xiàn)在我們有內(nèi)核熱補(bǔ)丁能夠?qū)崿F(xiàn)只有在硬件發(fā)生故障時(shí)才需要機(jī)器關(guān)機(jī)。我認(rèn)為比較實(shí)際可行的是,像減少移動(dòng)部件磨損一樣節(jié)省電能,且在不需要機(jī)器運(yùn)行的情況下將其關(guān)機(jī)。比如,你可以在規(guī)定的時(shí)間內(nèi)喚醒備份服務(wù)器,執(zhí)行備份,然后關(guān)閉它直到它要進(jìn)行下一次備份。或者,你可以設(shè)置你的互聯(lián)網(wǎng)網(wǎng)關(guān)只在特定的時(shí)間運(yùn)行。任何不需要一直運(yùn)行的東西都可以將其配置成在其需要工作的時(shí)候打開,待其完成工作后將其關(guān)閉。
系統(tǒng)休眠
對(duì)于不需要一直運(yùn)行的電腦,使用 root 的 cron 定時(shí)任務(wù)(即 /etc/crontab)可以可靠地關(guān)閉電腦。這個(gè)例子創(chuàng)建一個(gè) root 定時(shí)任務(wù)實(shí)現(xiàn)每天晚上 11 點(diǎn) 15 分定時(shí)關(guān)機(jī)。
# crontab -e -u root
# m hdom mon dow command
1523 * * * /sbin/shutdown -hnow
以下示例僅在周一至周五運(yùn)行:
1523 * * 1-5 /sbin/shutdown -hnow
您可以為不同的日期和時(shí)間創(chuàng)建多個(gè) cron 作業(yè)。 通過命令man 5 crontab可以了解所有時(shí)間和日期的字段。
一個(gè)快速、容易的方式是,使用/etc/crontab文件。但這樣你必須指定用戶:
1523 * * 1-5root shutdown -hnow
自動(dòng)喚醒
實(shí)現(xiàn)自動(dòng)喚醒是一件很酷的事情;我大多數(shù) SUSE (SUSE Linux)的同事都在紐倫堡,因此,因此為了跟同事能有幾小時(shí)一起工作的時(shí)間,我不得不需要在凌晨五點(diǎn)起床。我的計(jì)算機(jī)早上 5 點(diǎn)半自動(dòng)開始工作,而我只需要將自己和咖啡拖到我的桌子上就可以開始工作了。按下電源按鈕看起來好像并不是什么大事,但是在每天的那個(gè)時(shí)候每件小事都會(huì)變得很大。
喚醒 Linux 計(jì)算機(jī)可能不如關(guān)閉它可靠,因此你可能需要嘗試不同的辦法。你可以使用遠(yuǎn)程喚醒(Wake-On-LAN)、RTC 喚醒或者個(gè)人電腦的 BIOS 設(shè)置預(yù)定的喚醒這些方式。這些方式可行的原因是,當(dāng)你關(guān)閉電腦時(shí),這并不是真正關(guān)閉了計(jì)算機(jī);此時(shí)計(jì)算機(jī)處在極低功耗狀態(tài)且還可以接受和響應(yīng)信號(hào)。只有在你拔掉電源開關(guān)時(shí)其才徹底關(guān)閉。
BIOS 喚醒
BIOS 喚醒是最可靠的。我的系統(tǒng)主板 BIOS 有一個(gè)易于使用的喚醒調(diào)度程序 (圖 1)。對(duì)你來說也是一樣的容易。
圖 1:我的系統(tǒng) BIOS 有個(gè)易用的喚醒定時(shí)器。
主機(jī)遠(yuǎn)程喚醒(Wake-On-LAN)
遠(yuǎn)程喚醒是僅次于 BIOS 喚醒的又一種可靠的喚醒方法。這需要你從第二臺(tái)計(jì)算機(jī)發(fā)送信號(hào)到所要打開的計(jì)算機(jī)。可以使用 Arduino 或樹莓派Raspberry Pi發(fā)送給基于 Linux 的路由器或者任何 Linux 計(jì)算機(jī)的喚醒信號(hào)。首先,查看系統(tǒng)主板 BIOS 是否支持 Wake-On-LAN ,要是支持的話,必須先啟動(dòng)它,因?yàn)樗荒J(rèn)為禁用。
然后,需要一個(gè)支持 Wake-On-LAN 的網(wǎng)卡;無線網(wǎng)卡并不支持。你需要運(yùn)行ethtool命令查看網(wǎng)卡是否支持 Wake-On-LAN :
# ethtool eth0 | grep -i wake-on
Supports Wake-on: pumbg
Wake-on: g
這條命令輸出的 “Supports Wake-on” 字段會(huì)告訴你你的網(wǎng)卡現(xiàn)在開啟了哪些功能:
d — 禁用
p — 物理活動(dòng)喚醒
u — 單播消息喚醒
m — 多播(組播)消息喚醒
b — 廣播消息喚醒
a — ARP 喚醒
g — 特定數(shù)據(jù)包magic packet喚醒
s — 設(shè)有密碼的特定數(shù)據(jù)包magic packet喚醒
ethtool命令的 man 手冊(cè)并沒說清楚p選項(xiàng)的作用;這表明任何信號(hào)都會(huì)導(dǎo)致喚醒。然而,在我的測(cè)試中它并沒有這么做。想要實(shí)現(xiàn)遠(yuǎn)程喚醒主機(jī),必須支持的功能是g—— 特定數(shù)據(jù)包magic packet喚醒,而且下面的“Wake-on” 行顯示這個(gè)功能已經(jīng)在啟用了。如果它沒有被啟用,你可以通過ethtool命令來啟用它。
# ethtool -s eth0 wol g
這條命令可能會(huì)在重啟后失效,所以為了確保萬無一失,你可以創(chuàng)建個(gè) root 用戶的定時(shí)任務(wù)(cron)在每次重啟的時(shí)候來執(zhí)行這條命令。
@reboot/usr/bin/ethtool -seth0 wolg
另一個(gè)選擇是最近的網(wǎng)絡(luò)管理器Network Manager版本有一個(gè)很好的小復(fù)選框來啟用 Wake-On-LAN(圖 2)。
圖 2:?jiǎn)⒂?Wake on LAN
這里有一個(gè)可以用于設(shè)置密碼的地方,但是如果你的網(wǎng)絡(luò)接口不支持安全開機(jī)Secure On密碼,它就不起作用。
現(xiàn)在你需要配置第二臺(tái)計(jì)算機(jī)來發(fā)送喚醒信號(hào)。你并不需要 root 權(quán)限,所以你可以為你的普通用戶創(chuàng)建 cron 任務(wù)。你需要用到的是想要喚醒的機(jī)器的網(wǎng)絡(luò)接口和MAC地址信息。
3008 * * * /usr/bin/wakeonlan D0:50:99:82:E7:2B
-
Linux
+關(guān)注
關(guān)注
87文章
11469瀏覽量
212899 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7636瀏覽量
90264
原文標(biāo)題:如何自動(dòng)喚醒和關(guān)閉 Linux
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
計(jì)算機(jī)機(jī)房自動(dòng)計(jì)費(fèi)系統(tǒng)
《Visual C# 2008程序設(shè)計(jì)經(jīng)典案例設(shè)計(jì)與實(shí)現(xiàn)》---計(jì)算機(jī)的注銷、關(guān)閉和重新啟動(dòng)
計(jì)算機(jī)解題的基本思想方法和步驟
如何實(shí)現(xiàn)計(jì)算機(jī)對(duì)示波器進(jìn)行遠(yuǎn)程控制?
計(jì)算機(jī)實(shí)現(xiàn)的控制算法設(shè)計(jì)
計(jì)算機(jī)硬件維護(hù)的方法
什么是程序?什么是計(jì)算機(jī)
利用計(jì)算機(jī)設(shè)計(jì)單片開關(guān)電源的方法與步驟
什么是計(jì)算機(jī)算法?
數(shù)字計(jì)算機(jī)的硬件組成詳解
C#教程之遠(yuǎn)程關(guān)閉重啟計(jì)算機(jī)
基于嵌入式Linux網(wǎng)絡(luò)計(jì)算機(jī)的操作系統(tǒng)的實(shí)現(xiàn)方法淺析

評(píng)論