Я настраиваю задание крона для обновления моей nmzmail базы данных периодически, но я хотел бы, чтобы задание крона выполнилось, только если мой ноутбук включается. Существует ли способ сделать это? Если нет созданного в команде крона, то является там способом проверить через командную строку, что я мог использовать в простом сценарии?
Я расширился бы немного на первом ответе и вместо этого сделал бы что-то вроде этого для записи крона:
[ $(cat /proc/acpi/ac_adapter/AC/state | awk '{print $NF}') = 'on-line' ] && /path/to/your/script_file
Я даже не запустил бы свой сценарий, если тест не успешен. В этом экземпляре крон никогда не будет запускать сценарий, если ноутбук будет на батарее.
То, что Вы могли сделать, должно проверить, содержит ли/proc/acpi/ac_adapter/AC/state слово онлайн. Вы могли вставить следующее в начале своего задания крона:
# Do nothing when no AC power is available grep -q on-line /proc/acpi/ac_adapter/AC/state || exit 0
Более простая версия с помощью awk:
[ $(awk '{print $NF}' /proc/acpi/ac_adapter/AC/state) = 'on-line' ] && /path/to/your/script_file
но эта версия все еще выглядит более простой, по моему скромному мнению:
grep -q on-line /proc/acpi/ac_adapter/AC/state && /path/to/your/script_file