下午好,
我已经从 Windows 服务器切换到 Ubuntu 服务器,并且设法复制了旧服务器上的所有项目(睡眠模式除外)。
我目前安装了 Ubuntu Server 16.04.2 LTS,但我无法使用 crontab 脚本唤醒它。
使用:
sudo rtcwake -u -s 120 - mem
使计算机睡眠 2 分钟,因此我知道系统能够睡眠和唤醒,但尝试将其转移到脚本对我来说很困难,因为这都是新的,而且我目前对 Ubuntu/Linux 的了解非常有限。所以您能否花 2 分钟时间来看看我到目前为止所做的事情。
我到目前为止运行的命令是:
sudo crontab -e
然后在最后添加此行来测试该功能:
30 19 * * * /home/andy/suspend_until 19:45
在 suspend_until 文件中:
#!/bin/bash
# Auto suspend and wake-up script
# Argument check
if [ $# -lt 1 ]; then
echo "Usage: suspend_until HH:MM"
exit
fi
# Check whether specified time today or tomorrow
DESIRED=$((`date +%s -d "$1"`))
NOW=$((`date +%s`))
if [ $DESIRED -lt $NOW ]; then
DESIRED=$((`date +%s -d "$1"` + 24*60*60))
fi
# Kill rtcwake if already running
sudo killall rtcwake
# Set RTC wakeup time
# N.B. change "mem" for the suspend option
# find this by "man rtcwake"
sudo rtcwake -l -m mem -t $DESIRED &
# feedback
echo "Suspending..."
# give rtcwake some time to make its stuff
sleep 2
# then suspend
# N.B. dont usually require this bit
#sudo pm-suspend
# Any commands you want to launch after wakeup can be placed here
# Remember: sudo may have expired by now
# Wake up with monitor enabled N.B. change "on" for "off" if
# you want the monitor to be disabled on wake
xset dpms force on
# and a fresh console
clear
echo "Good morning!"
归功于红极在线
然后:chmod +x suspend_until
服务器于19:30进入待机状态,但一直没有唤醒。
任何帮助都非常感谢
提前感谢您的时间
安迪
答案1
在您的测试命令中:
sudo rtcwake -u -s 120 -m mem
导致-u
唤醒假设您的计算机时钟(在 BIOS 中)设置为 UTC 时间。但是,当您测试相对时间(本例中为 120 秒)时,时钟设置的时间实际上并不重要,因此它无论如何都可以工作。
cron 执行的脚本使用该-l
选项,导致唤醒假设您的计算机时钟设置为当地时间。
无论哪种情况,您都应该保持一致,无论使用哪个选项,您都应该检查您的实际 BIOS 设置。要测试唤醒对于绝对时间,请使用 -t 选项:
sudo rtcwake -m mem -l -t $(date +%s -d ‘today 19:45’)
我假设您的计算机时钟设置为当地时间。
干杯