Предельное использование крона

Попробуйте, не изменяя psql пароль пользователя базы данных.

Согласно http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440109#27, это решает проблему.

3
задан 13 June 2011 в 03:18
1 ответ

Я не знаю, что стандартный пакет реализует эту опцию.

Можно, конечно, создать корневое задание крона, которое проверяет и "фиксирует" пользователя cronjobs. Возьмите следующий сценарий, например - он не тестируется главным образом, но он работал с этими несколькими примерами, которые я бросил в него.

#!/bin/bash
min=16 # the minimum allowed interval between runs
for crontab in /var/spool/cron/crontabs/*
do
  cp $crontab $crontab.bak
  # replace the * * * * * jobs with */16 * * * * jobs.
  sed -i "s/\* \* \* \* \*/\*\/16 * * * */" $crontab
  for i in `seq 1 $min`
  do  
    # replace */N * * * * for every N <= min
    sed -i "s/\*\/$i \* \* \* \*/*\/16 * * * */" $crontab
  done
done

Это предполагает, что crontab поля разделяются пробелами, которые не могут быть верными - я использовал то предположение для хранения regex (надо надеяться), понятным. Сделать это большим количеством устойчивой замены все пробелы в левом regexes с \s, если Ваш sed поддерживает его, или [ \t]+ (Я думаю), если это не делает.

Действительно обратите внимание, что пример применяет 17 других поисков-и-замен по каждому crontab, который, конечно, вероятно, будет недопустим, когда количество crontabs увеличится. Для облегчения этой проблемы, можно использовать единственный regex для соответствия всему возможному нарушению cronjobs. Например, что-то как (непротестированный): \*(/[0-9][0-5])* \* \* \* \* или процедурно созданный с помощью вывода seq -s '|' 0 $min. Сообщите мне, нуждаетесь ли Вы в помощи с этим.

4
ответ дан 3 December 2019 в 06:17

Теги

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