我正在设置一个 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