Как сделать запуск Anacron надежным?

Итак, я использую Anacron для надежного запуска некоторых скриптов ежедневно. Однако это не работает, когда Anacron сам не запускается при загрузке в течение половины времени. Как я могу заставить Anacron надежно запустить?

> grep 'anacron' /var/log/syslog.2 May 18 19:09:02 s-laptop anacron[2480]: Job `cron.daily' terminated (exit status: 1) (mailing output) May 18 19:09:02 s-laptop anacron[2480]: Can't find sendmail at /usr/sbin/sendmail, not mailing output May 18 19:09:02 s-laptop anacron[2480]: anacron: Can't find sendmail at /usr/sbin/sendmail, not mailing output May 18 19:09:02 s-laptop anacron[2480]: Normal exit (1 job run) May 18 21:20:48 s-laptop systemd[1]: Started Run anacron jobs at resume. May 20 16:30:46 s-laptop systemd[1]: Started Run anacron jobs at resume. May 20 17:02:27 s-laptop systemd[1]: Started Run anacron jobs at resume. May 20 18:58:50 s-laptop systemd[1]: Started Run anacron jobs at resume. May 20 19:13:48 s-laptop systemd[1]: Started Run anacron jobs. May 20 19:13:48 s-laptop anacron[734]: Anacron 2.3 started on 2017-05-20 May 20 19:13:48 s-laptop anacron[734]: Will run job `cron.daily' in 5 min. May 20 19:13:48 s-laptop anacron[734]: Will run job `cron.weekly' in 10 min. May 20 19:13:48 s-laptop anacron[734]: Jobs will be executed sequentially May 20 19:18:51 s-laptop anacron[734]: Job `cron.daily' started May 20 19:18:51 s-laptop anacron[2367]: Updated timestamp for job `cron.daily' to 2017-05-20 > grep 'anacron' /var/log/syslog.1 May 20 19:18:54 s-laptop anacron[734]: Job `cron.daily' terminated (exit status: 1) (mailing output) May 20 19:23:48 s-laptop anacron[734]: Job `cron.weekly' started May 20 19:23:48 s-laptop anacron[2606]: Updated timestamp for job `cron.weekly' to 2017-05-20 May 20 19:30:09 s-laptop anacron[734]: Job `cron.weekly' terminated May 20 19:30:09 s-laptop anacron[734]: Normal exit (2 jobs run) May 21 10:02:56 s-laptop systemd[1]: Started Run anacron jobs at resume. May 25 12:53:39 s-laptop systemd[1]: Started Run anacron jobs at resume. Jun 1 18:09:14 s-laptop systemd[1]: Started Run anacron jobs at resume. Jun 3 12:29:40 s-laptop anacron[751]: Anacron 2.3 started on 2017-06-03 Jun 3 12:29:40 s-laptop anacron[751]: Will run job `cron.daily' in 5 min. Jun 3 12:29:40 s-laptop anacron[751]: Will run job `cron.weekly' in 10 min. Jun 3 12:29:40 s-laptop systemd[1]: Started Run anacron jobs. Jun 3 12:29:40 s-laptop anacron[751]: Will run job `cron.monthly' in 15 min. Jun 3 12:29:40 s-laptop anacron[751]: Jobs will be executed sequentially Jun 3 12:34:40 s-laptop anacron[751]: Job `cron.daily' started Jun 3 12:34:40 s-laptop anacron[2243]: Updated timestamp for job `cron.daily' to 2017-06-03 > grep 'anacron' /var/log/syslog Jun 3 12:34:44 s-laptop anacron[751]: Job `cron.daily' terminated (mailing output)

Как видно из syslog, Anacron запускался только при загрузке 20 мая и 3 июня, несмотря на загрузку машины 21 и 25 мая и 1 июня.

Кроме того, сегодня (3 июня), я фактически загрузил свой компьютер в 12:11, и, увидев, что Anacron не запустился, и ни одна из моих заданий не была запущена, я перезагрузил машину на 12 : 29. Вы можете увидеть эту вторую загрузку, Anacron решил запустить. Почему это просто не запускается много времени?

2
задан 3 June 2017 в 15:03

4 ответа

Таким образом, кажется, что Anacron не запускается при запуске, если он заряжен от батареи, и в противном случае он запланирован только на 7:30. Решением для меня было настроить Anacron для запуска при включении питания.

Это можно сделать, добавив скрипт следующим образом:

#!/bin/sh
test -x /etc/init.d/anacron && /usr/sbin/invoke-rc.d anacron start >/dev/null

Я сохранил его в /etc/pm/power.d/10_anacron (убедитесь, что он выполним), который в старых системах будет запущен автоматически при подключении. В текущих версиях Ubuntu вам нужно добавить правило udev для запуска скрипта. Просто сохраните:

SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/etc/pm/power.d/10_anacron"

- /etc/udev/rules.d/anacron.rules.

3
ответ дан 22 May 2018 в 21:55

Простейший способ: просто измените строку в файле /etc/default/anacron на:

ANACRON_RUN_ON_BATTERY_POWER=yes
3
ответ дан 18 July 2018 в 12:13

Простейший способ: просто измените строку в файле /etc/default/anacron на:

ANACRON_RUN_ON_BATTERY_POWER=yes
1
ответ дан 22 May 2018 в 21:55
  • 1
    Это может привести к тому, что он будет работать от батареи и отработанной энергии, именно поэтому в первую очередь не установлен. Это зависит от того, является ли надежность или батарея более важной проблемой для вас. Решение, которое я использую, не влияет на срок службы батареи, но значительно повышает надежность настройки по умолчанию. – Sam Bull 28 August 2017 в 14:04
  • 2
    Ах, теперь у меня есть твоя проблема! В этом случае ваше решение лучше. Но, возможно, вы должны отредактировать свой вопрос, чтобы люди могли сразу увидеть, что речь идет только о запуске anacron, когда ноутбук подключен. – mzuther 29 August 2017 в 16:36
  • 3
    Ну, проблема в том, что он почти не работал. Благодаря дальнейшему копанию я понял, что проблема вызвана тем, что она работает только при загрузке (и пропускается, если включена батарея). Итак, мое решение означает, что в настоящее время он работает в большинстве случаев, когда я использую свой ноутбук, а до того, как он работает только один раз в месяц. – Sam Bull 29 August 2017 в 20:44
  • 4
    Это изменение не работает на Ubuntu 16.04 – NicolasSmith 26 October 2017 в 09:53

Простейший способ: просто измените строку в файле /etc/default/anacron на:

ANACRON_RUN_ON_BATTERY_POWER=yes
1
ответ дан 24 July 2018 в 19:55
  • 1
    Это может привести к тому, что он будет работать от батареи и отработанной энергии, именно поэтому в первую очередь не установлен. Это зависит от того, является ли надежность или батарея более важной проблемой для вас. Решение, которое я использую, не влияет на срок службы батареи, но значительно повышает надежность настройки по умолчанию. – Sam Bull 28 August 2017 в 14:04
  • 2
    Ах, теперь у меня есть твоя проблема! В этом случае ваше решение лучше. Но, возможно, вы должны отредактировать свой вопрос, чтобы люди могли сразу увидеть, что речь идет только о запуске anacron, когда ноутбук подключен. – mzuther 29 August 2017 в 16:36
  • 3
    Ну, проблема в том, что он почти не работал. Благодаря дальнейшему копанию я понял, что проблема вызвана тем, что она работает только при загрузке (и пропускается, если включена батарея). Итак, мое решение означает, что в настоящее время он работает в большинстве случаев, когда я использую свой ноутбук, а до того, как он работает только один раз в месяц. – Sam Bull 29 August 2017 в 20:44
  • 4
    Это изменение не работает на Ubuntu 16.04 – NicolasSmith 26 October 2017 в 09:53

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

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