Bug 31198 - anacron - не запускает скрипты
Summary: anacron - не запускает скрипты
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: anacron (show other bugs)
Version: unstable
Hardware: all Linux
: P3 enhancement
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-08-07 12:49 MSK by Mikhail Kolchin
Modified: 2016-02-08 10:43 MSK (History)
6 users (show)

See Also:


Attachments
Простой бекап системы. (527 bytes, application/x-shellscript)
2015-08-20 12:15 MSK, Mikhail Kolchin
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mikhail Kolchin 2015-08-07 12:49:59 MSK
Замена run-anacronjobs на run-parts решает проблему.
Comment 1 Dmitry V. Levin 2015-08-20 10:39:26 MSK
В чем, собственно, у вас проблема?
Comment 2 Mikhail Kolchin 2015-08-20 12:15:47 MSK
Created attachment 6348 [details]
Простой бекап системы.
Comment 3 Mikhail Kolchin 2015-08-20 12:21:30 MSK
Проблема в том что скрипт run-anacronjobs кривой и пакет нерабочий уже с 2008 года. Приложил файл, запускаем anacron -f и сморим. Сделал исправление на http://git.altlinux.org/tasks/147910/
Comment 4 Dmitry V. Levin 2015-08-20 12:32:01 MSK
(In reply to comment #3)
> Проблема в том что скрипт run-anacronjobs кривой и пакет нерабочий уже с 2008
> года.

Обоснуйте, пожалуйста.

> Приложил файл, запускаем anacron -f и сморим.

Подробнее, пожалуйста.

> Сделал исправление на http://git.altlinux.org/tasks/147910/

Это не исправление, а откат изменений, сделанных в 2.3-alt2.

Из того, что вы на данный момент сообщили, складывается ощущение, что у вас local misconfiguration, которую вы пытаете побороть на уровне дистрибутива.
Comment 5 Mikhail Kolchin 2015-08-20 12:54:21 MSK
> > Проблема в том что скрипт run-anacronjobs кривой и пакет нерабочий уже с
> > 2008 года.
> 
> Обоснуйте, пожалуйста.

run-anacronjobs он вообще для чего был туда положен? run-parts делает тоже самое.

> > Приложил файл, запускаем anacron -f и сморим.
> 
> Подробнее, пожалуйста.

Положите в папки cron.{daily,weekly,monthly} и потестируйте.

> > Сделал исправление на http://git.altlinux.org/tasks/147910/
> 
> Это не исправление, а откат изменений, сделанных в 2.3-alt2.
> 
> Из того, что вы на данный момент сообщили, складывается ощущение, что у вас
> local misconfiguration, которую вы пытаете побороть на уровне дистрибутива.

Так для чего собственно run-anacronjobs?
Comment 6 Dmitry V. Levin 2015-08-20 13:19:49 MSK
(In reply to comment #5)
> > > Проблема в том что скрипт run-anacronjobs кривой и пакет нерабочий уже с
> > > 2008 года.
> > 
> > Обоснуйте, пожалуйста.
> 
> run-anacronjobs он вообще для чего был туда положен? run-parts делает тоже
> самое.

Неужели?

> > > Приложил файл, запускаем anacron -f и сморим.
> > 
> > Подробнее, пожалуйста.
> 
> Положите в папки cron.{daily,weekly,monthly} и потестируйте.

Этот скрипт обладает нетривиальными зависимостями, требует нетривиальной конфигурации и потому не подходит для тестирования без создания специального стенда, подробную конфигурацию которого вы не приложили.

Непонятно, почему нельзя потестировать на чем-нибудь попроще.

> > > Сделал исправление на http://git.altlinux.org/tasks/147910/
> > 
> > Это не исправление, а откат изменений, сделанных в 2.3-alt2.
> > 
> > Из того, что вы на данный момент сообщили, складывается ощущение, что у вас
> > local misconfiguration, которую вы пытаете побороть на уровне дистрибутива.
> 
> Так для чего собственно run-anacronjobs?

В самом деле, зачем run-anacronjobs?
Comment 7 Mikhail Kolchin 2015-08-20 14:14:35 MSK
> Непонятно, почему нельзя потестировать на чем-нибудь попроще.

Потому что простые bach скрипты состоящие из пару строчек он исправно запускает.
А тут заметил, что если добавить gpg шифрование то скрипт не запускается, так что проще уже нельзя.

#!/bin/bash

SERVER_NAME="server1"
TIME=`date +%Y-%m`

GPG_COMMAND="gpg -c -z 0 --batch --passphrase passw0rd"

FS_FILE=/tmp/$SERVER_NAME-fs.$TIME.tar.gz.gpg

tar -cz /etc | $GPG_COMMAND > $FS_FILE
Comment 8 Mikhail Kolchin 2015-08-20 14:25:50 MSK
Так что не понятно для кого и для чего этот фильтр был добавлен.
Comment 9 Dmitry V. Levin 2015-08-20 14:35:05 MSK
Единственное существенное семантическое различие между run-parts и run-anacronjobs заключается в том, что run-parts выполняется в режиме "set +e", а run-anacronjobs - в режиме "set -e", т.е. останавливается после первого обломившегося executable.

Просьба автора прокомментировать причину этого изменения.
Comment 10 Alexey Gladkov 2015-08-20 16:04:55 MSK
(В ответ на комментарий №9)
> Единственное существенное семантическое различие между run-parts и
> run-anacronjobs заключается в том, что run-parts выполняется в режиме "set +e",
> а run-anacronjobs - в режиме "set -e", т.е. останавливается после первого
> обломившегося executable.

Не только. Различие ещё и в TASK_FILTER. Собственно run-anacronjobs был создан из run-parts, поэтому они так похожи. По поводу "set -e", то наверно он некорректен т.к. из-за этого задачи лексикографически идущие раньше влияют на последующие.

> Просьба автора прокомментировать причину этого изменения.

Это было сделано для того, чтобы была возможность не запускать определённые задания при определённых условиях (о чём гласит комментарий). Например: не заниматься индексированием манов или osec, или любые затратные операции, если ноут на батарейке.

Насколько это изменение используется и актуально я не знаю.

Призываю вероятного заказчика этой фичи.
Comment 11 Mikhail Kolchin 2015-08-20 17:27:04 MSK
ldv@ вы приняли этот коммит, а теперь спрашивает для чего он. 7 лет прошло))
Comment 12 Alexey Gladkov 2015-08-20 17:51:25 MSK
OffTopic: Дмитрий, знает, что я помню :)
Comment 13 Dmitry V. Levin 2015-08-20 18:48:03 MSK
(In reply to comment #10)
> (В ответ на комментарий №9)
> > Единственное существенное семантическое различие между run-parts и
> > run-anacronjobs заключается в том, что run-parts выполняется в режиме "set +e",
> > а run-anacronjobs - в режиме "set -e", т.е. останавливается после первого
> > обломившегося executable.
> 
> Не только. Различие ещё и в TASK_FILTER.

Про TASK_FILTER мне все понятно.

> По поводу "set -e", то наверно он некорректен т.к. из-за этого задачи
> лексикографически идущие раньше влияют на последующие.

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

2mvk: если в run-anacronjobs заменить "set -e" на "set +e", то у вас anacron починится, верно?
Comment 14 Alexey Gladkov 2015-08-20 18:56:50 MSK
> В этом и был мой вопрос.
> Я тоже считаю, что надо запускать все executables, подлежащие запуску.
> Исправишь?

Хорошо.

> 2mvk: если в run-anacronjobs заменить "set -e" на "set +e", то у вас anacron
> починится, верно?

Присоединяюсь к вопросу.
Comment 15 Michael Shigorin 2015-08-20 19:16:00 MSK
(В ответ на комментарий №10)
> > Просьба автора прокомментировать причину этого изменения.
> [...] Например: не заниматься индексированием манов или osec,
> или любые затратные операции, если ноут на батарейке. [...]
> Призываю вероятного заказчика этой фичи.
Точно не помню, но одно время и впрямь пытался сделать на эту тему что-то в на локалхосте и в дистрибутиве, затем поубирал пакеты вроде makewhatis (и к тому времени пакеты вроде osec в десктопные дистрибутивы не попадали, что вообще-то жаль) и как-то всё забыл напрочь.

Обсуждения на эту тему могут найтись по слову idlewrap, см. тж. одноименный пакет и bug 3193 (кстати, у нас будто бы сломался автолинкинг таких "ссылок").
Comment 16 Mikhail Kolchin 2015-08-21 00:39:29 MSK
Не надо ничего менять! Чел. загружен и не в состоянии поддерживать пакет и точка.
Comment 17 Dmitry V. Levin 2015-08-21 00:49:45 MSK
(In reply to comment #14)
> > В этом и был мой вопрос.
> > Я тоже считаю, что надо запускать все executables, подлежащие запуску.
> > Исправишь?
> 
> Хорошо.
> 
> > 2mvk: если в run-anacronjobs заменить "set -e" на "set +e", то у вас anacron
> > починится, верно?
> 
> Присоединяюсь к вопросу.

на самом деле не важно, починится или нет, exit status от "$f" "$@" все равно надо игнорировать.
Comment 18 Alexey Gladkov 2015-08-21 12:25:44 MSK
(В ответ на комментарий №17)
> на самом деле не важно, починится или нет, exit status от "$f" "$@" все равно
> надо игнорировать.

Согласен. Исправлю.
Comment 19 Mikhail Kolchin 2016-02-08 10:41:57 MSK
Fixed.