Попробуйте, не изменяя psql пароль пользователя базы данных.
Согласно http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440109#27, это решает проблему.
Я не знаю, что стандартный пакет реализует эту опцию.
Можно, конечно, создать корневое задание крона, которое проверяет и "фиксирует" пользователя 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
. Сообщите мне, нуждаетесь ли Вы в помощи с этим.