Сегодня я пришел к работе и нашел, что некоторые мои сценарии жемчуга на сервере работы - не работают. Проблема состоит в том, что сценарии не могут найти некоторые библиотеки, которые должны работать. Однако только вчера, эти библиотеки были установлены, и сценарии работаются! Кажется, что пакеты были удалены из системы! После рассмотрения журналов я нашел эту запись в /var/log/apt/history.log
Дата начала: 26.09.2014 6:10:33 Удаляет: libclass-load-perl:amd64 (0.17-1), rrdtool:amd64 (1.4.7-2), libyaml-syck-perl:amd64 (1.20-1)... ПРОПУЩЕННЫЙ ДРУГОЙ ГЛАВНЫМ ОБРАЗОМ Perl Дата окончания PACKGES: 26.09.2014 6:10:41
НО!
1 не было никого на сервере в это время, и никто не удалит эти пакеты.
2. Возможно, сервер был взломан, но сначала очевидные знаки взламывания не являются видимыми, и во-вторых очень странными, что взломщик был бы решенный для удаления этих пакетов
3 Всех других записи в /var/log/apt/history.log - также имеют другую строку CommandLine: - и в этом случае это отсутствует.
Что, возможно, произошло?
ОБНОВЛЕНИЕ:
За неделю до этого (2014-09-19) я произвел чистку munin (но не munin-узел!). Возможно, это удалило пакеты, автоудаляют предложение для munin? Но поскольку я знаю, 'автоудаляют', не является действительно 'автоматическим', и этому нужна ручная проверка, прежде чем удалят что-то
UPDATE2:
APT { NeverAutoRemove { "^firmware-linux.*"; "^linux-firmware$"; "^linux-image.*"; "^kfreebsd-image.*"; "^linux-restricted-modules.*"; "^linux-ubuntu-modules-.*"; "^gnumach$"; "^gnumach-image.*"; }; Never-MarkAuto-Sections { "metapackages"; "restricted/metapackages"; "universe/metapackages"; "multiverse/metapackages"; "oldlibs"; "restricted/oldlibs"; "universe/oldlibs"; "multiverse/oldlibs"; }; };
Возможно, у вас работает какое-то решение для автоматического обновления, которое удаляет "неиспользуемые" пакеты.
Когда apt обнаруживает, что существует пакет, который не используется другими пакетами, то это считается «неиспользуемым» и удаляется.
Если вы используете программу unattended-upgrade
для автоматических обновлений, попробуйте установить для Remove-Unused-Dependencies
значение true
.