我让 Mac 在夜间唤醒并运行 rsync 来备份。这可通过“节能器”>“计划”进行配置。
然而,它似乎在完成任何事情之前就又进入睡眠状态了,所以我需要在执行 rsync 运行的 bash 脚本期间停止它的睡眠状态。
我认为最好的方法(如果可能的话)是在 rsync 之前发出命令将睡眠超时设置为“从不”或非常长的超时,然后在完成后恢复正常。有没有更好的解决方案?
答案1
咖啡因
例如:
caffeinate -i rsync -avz someuser@somehost:somefolder /some/local/folder
从手册页中:
EXAMPLE
caffeinate -i make
caffeinate forks a process, execs "make" in it, and holds an
assertion that prevents idle sleep as long as that process
is running.
请man caffeinate
参阅详情。
答案2
Mac OS X 10.8 (Mountain Lion) 及更高版本
使用caffeinate
命令。请参阅Nathan Long 的回答或man caffeinate
了解详情。
Mac OS X 10.7 (Lion) 及更早版本
它隐藏在手册页中,但是时间设置有一个非常简单的防止睡眠模式。如果你执行该命令,pmset noidle
你的 Mac 将保持唤醒状态,直到该进程被终止。以下是在脚本中使用它的方法:
# launch process to prevent sleep and move it to the background
pmset noidle &
# save the process ID
PMSETPID=$!
... do stuff here ...
... don't fall asleep ...
... watch out for that tree!
... ok we're free and clear now ...
# kill pmset so the computer can sleep if it wants to
kill $PMSETPID
这比使用 pmset 来更改您的睡眠设置要好,因为后者需要 root 访问权限并且(假设您想成为一个好公民)需要某种方式检测当前设置并在完成后将其更改回来。
答案3
尝试
man pmset
:-)