2015-12-16 67 views
0

我有一臺ubuntu 14服務器,我想在接下來的10個小時內關閉,然後自行啓動。如何安排服務器啓動?

我看到我們可以安排重新啓動,但是我們可以安排一個啓動事件嗎?

我要的是:

  • 服務器是
  • 服務器進入睡眠狀態X小時,知道它有X小時後醒來
  • 服務器睡着
  • X小時通
  • 服務器自行啓動。

這可能嗎?

+0

AFAIK只能在BIOS中設置喚醒警報,但並非所有人都支持喚醒警報。 – Kenney

回答

0

有一個命令rtcwake應該做你想做的。例如,要讓電腦進入睡眠狀態60秒,請嘗試使用sudo rtcwake -u -s 60 -m mem

0

這是我實施的解決方案,我有一臺家用服務器,我想在早上8點和上午12點之間運行 - 我不會在睡着的時候使用它。下面是一個shell腳本,我簡單地命名爲nap,它需要一個24H格式的字符串,並在此時使用命令rtcwake命令喚醒機器。

關閉系統時,只需撥打/bin/nap而不是關機,它會在您定義的時間醒來。

用一個cronjob我所建立在午夜

運行相結合
0 0 * * * root /bin/nap 

自實施以來,我的服務器已經有一個更好的睡眠/覺醒週期,然後一

這個不幸的一部分,是如果您使用電源按鈕關閉機器,則不會在早上醒來時

#!/bin/sh 

# unix time in s that we should wake at 
waketime=$(date +%s -d '08:00') 

# make sure the time we got is in the future 
if [ $(date +%s) -gt $waketime ]; then 

     # if not add a day 60s * 60s * 24h 
     waketime=$(($waketime + 86400)) 
fi 

# time in S from now till then 
dif=$(($waketime - $(date +%s))) 

# tell the user 
echo 
echo "Current Time  : $(date +%s)" 
echo "Wake Time   : $waketime" 
echo "Seconds From Now : $dif" 
echo 
echo "Crtl-C to Cancel in 5s" 
echo 
sleep 5 

# sleep with rtcwake 
/usr/sbin/rtcwake -m off -l -s $dif 

echo "Shutdown."