Настроить задание cron для запуска только при подключении ноутбука?

Я настраиваю задание cron для периодической обновления базы данных nmzmail, но я хотел бы выполнить задание cron, только если мой ноутбук подключен. Есть ли способ сделать это? Если в команде cron нет встроенной команды, есть ли способ проверить через командную строку, которую я мог бы использовать в простом сценарии?

1
задан 23 June 2011 в 05:20

18 ответов

Я немного расширил первый ответ и вместо этого сделаю что-то подобное для записи cron:

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

Я бы предпочел даже не запускать свой скрипт, если тест не будет успешным. В этом случае cron никогда не запустит сценарий, если ноутбук включен.

1
ответ дан 25 May 2018 в 20:09

Я немного расширил первый ответ и вместо этого сделаю что-то подобное для записи cron:

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

Я бы предпочел даже не запускать свой скрипт, если тест не будет успешным. В этом случае cron никогда не запустит сценарий, если ноутбук включен.

1
ответ дан 25 July 2018 в 21:41

Я немного расширил первый ответ и вместо этого сделаю что-то подобное для записи cron:

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

Я бы предпочел даже не запускать свой скрипт, если тест не будет успешным. В этом случае cron никогда не запустит сценарий, если ноутбук включен.

1
ответ дан 2 August 2018 в 03:17

Я немного расширил первый ответ и вместо этого сделаю что-то подобное для записи cron:

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

Я бы предпочел даже не запускать свой скрипт, если тест не будет успешным. В этом случае cron никогда не запустит сценарий, если ноутбук включен.

1
ответ дан 4 August 2018 в 19:11

Я немного расширил первый ответ и вместо этого сделаю что-то подобное для записи cron:

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

Я бы предпочел даже не запускать свой скрипт, если тест не будет успешным. В этом случае cron никогда не запустит сценарий, если ноутбук включен.

1
ответ дан 6 August 2018 в 03:28

Я бы немного расширил первый ответ и вместо этого сделаю что-то подобное для записи cron:

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

Я бы предпочел даже не запускать свой скрипт, если тест не будет успешным. В этом случае cron никогда не запустит сценарий, если ноутбук включен.

1
ответ дан 7 August 2018 в 21:15

Я бы немного расширил первый ответ и вместо этого сделаю что-то подобное для записи cron:

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

Я бы предпочел даже не запускать свой скрипт, если тест не будет успешным. В этом случае cron никогда не запустит сценарий, если ноутбук включен.

1
ответ дан 10 August 2018 в 09:34

Я бы немного расширил первый ответ и вместо этого сделаю что-то подобное для записи cron:

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

Я бы предпочел даже не запускать свой скрипт, если тест не будет успешным. В этом случае cron никогда не запустит сценарий, если ноутбук включен.

1
ответ дан 13 August 2018 в 15:43

Простая версия с использованием 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
1
ответ дан 25 May 2018 в 20:09

Что вы можете сделать, это проверить, содержит ли / proc / acpi / ac_adapter / AC / state слово в режиме онлайн. В начале задания cron вы можете ввести следующее:

# Do nothing when no AC power is available grep -q on-line /proc/acpi/ac_adapter/AC/state || exit 0
0
ответ дан 25 May 2018 в 20:09

Что вы можете сделать, это проверить, содержит ли / proc / acpi / ac_adapter / AC / state слово в режиме онлайн. В начале задания cron вы можете ввести следующее:

# Do nothing when no AC power is available grep -q on-line /proc/acpi/ac_adapter/AC/state || exit 0
0
ответ дан 25 July 2018 в 21:41

Что вы можете сделать, это проверить, содержит ли / proc / acpi / ac_adapter / AC / state слово в режиме онлайн. В начале задания cron вы можете ввести следующее:

# Do nothing when no AC power is available grep -q on-line /proc/acpi/ac_adapter/AC/state || exit 0
1
ответ дан 2 August 2018 в 03:17

Что вы можете сделать, это проверить, содержит ли / proc / acpi / ac_adapter / AC / state слово в режиме онлайн. В начале задания cron вы можете ввести следующее:

# Do nothing when no AC power is available grep -q on-line /proc/acpi/ac_adapter/AC/state || exit 0
1
ответ дан 4 August 2018 в 19:11

Что вы можете сделать, это проверить, содержит ли / proc / acpi / ac_adapter / AC / state слово в режиме онлайн. В начале задания cron вы можете ввести следующее:

# Do nothing when no AC power is available grep -q on-line /proc/acpi/ac_adapter/AC/state || exit 0
1
ответ дан 6 August 2018 в 03:28

Что вы можете сделать, это проверить, содержит ли / proc / acpi / ac_adapter / AC / state слово в режиме онлайн. Вы можете ввести следующее в начале вашего задания cron:

 # Ничего не делать, когда нет питания переменного тока grep -q on-line / proc / acpi / ac_adapter / AC / state ||  exit 0 
1
ответ дан 7 August 2018 в 21:15

Что вы можете сделать, это проверить, содержит ли / proc / acpi / ac_adapter / AC / state слово в режиме онлайн. Вы можете ввести следующее в начале вашего задания cron:

 # Ничего не делать, когда нет питания переменного тока grep -q on-line / proc / acpi / ac_adapter / AC / state ||  exit 0 
1
ответ дан 10 August 2018 в 09:34

Простая версия с использованием awk:

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

, но эта версия все еще выглядит более простой IMHO:

 grep -q on-line / proc / acpi / ac_adapter / AC / state && / path / to / your /  script_file 
1
ответ дан 12 August 2018 в 17:17

Что вы можете сделать, это проверить, содержит ли / proc / acpi / ac_adapter / AC / state слово в режиме онлайн. Вы можете ввести следующее в начале вашего задания cron:

 # Ничего не делать, когда нет питания переменного тока grep -q on-line / proc / acpi / ac_adapter / AC / state ||  exit 0 
0
ответ дан 13 August 2018 в 15:43

Другие вопросы по тегам:

Похожие вопросы: