配置一个 cron 作业,仅在笔记本电脑插入电源时运行?

配置一个 cron 作业,仅在笔记本电脑插入电源时运行?

我正在设置一个 cron 作业来定期更新我的 nmzmail 数据库,但我希望 cron 作业仅在我的笔记本电脑插入电源时执行。有办法吗?如果没有内置的 cron 命令,那么是否有办法通过命令行进行检查,我可以在简单的脚本中使用?

答案1

我会对第一个答案进行一些扩展,并对 cron 条目执行如下操作:

[ $(cat /proc/acpi/ac_adapter/AC/state | awk '{print $NF}') = 'on-line' ] && /path/to/your/script_file

我宁愿不启动我的脚本,除非测试成功。在这种情况下,如果笔记本电脑使用电池供电,cron 将永远不会启动脚本。

答案2

使用 awk 的更简单版本:

[ $(awk '{print $NF}' /proc/acpi/ac_adapter/AC/state) = 'on-line' ] && /path/to/your/script_file

但在我看来这个版本仍然看起来更简单:

grep -q 在线 /proc/acpi/ac_adapter/AC/state && /path/to/your/script_file

答案3

您可以做的是检查 /proc/acpi/ac_adapter/AC/state 是否包含单词 on-line。您可以在 cron 作业的开头输入以下内容:

# 没有交流电时不执行任何操作
grep -q 在线 /proc/acpi/ac_adapter/AC/state || 退出 0

相关内容