
У меня на сервере запущены процессы, которые убиваются каждую ночь в полночь. Это происходит на работе, меня нет рядом, когда это происходит, и у меня нет удаленного доступа.
Убийство происходит очень предсказуемо в 23:59 каждую ночь. Я знаю это, потому что, когда я прихожу на следующий день:
- Процессы до 23:59
- В журналах процесса указано время последнего изменения 23:59 (и сразу после этого начинается новый датированный журнал).
Поскольку убийство происходит в один и тот же час, я сильно подозревал пакетную работу. Я просмотрел crontab
все наши машины и ничего не нашел. Очевидно, я что-то упускаю.
Я думаю о том, чтобы выложить скрипт наблюдения, который будет сообщать о выходе с ps
перерывами, будет запускаться за at
несколько минут до этого и будет зацикливаться некоторое время. Эта идея кажется слабой и очень подверженной ошибкам, поэтому мне интересно, есть ли у кого-нибудь идея получше.
Подробнее:
Вселенная — очень большая и очень старая унаследованная система; никто в моей команде, похоже, не знает о таком процессе (если бы кто-то знал, то она была бы в нашей команде), хотя большая организация состоит из тысяч сотрудников, многие из них теоретически имеют к этому доступ (я не понимаю, почему они должны). Другими словами, безопасность не очень строгая.
Среда состоит из нескольких машин, работающих под управлением Solaris 10.
Это не производственная среда, поэтому время ожидания или простоя не имеет решающего значения.
Я не исключаю возможности того, что убийство могло быть совершено не в результате группового заказа, хотя это маловероятно, учитывая точность хронометража.
Очевидно, что в нашей бухгалтерии есть недостатки, поэтому возможно все, что угодно.
Мой вопрос в том, какую стратегию лучше всего принять? Это относится к более широкому понятию «радость работы с устаревшими системами». Я начинаю работать над своим сценарием, который вскоре выложу здесь для обратной связи. А пока, если у кого-то есть идея получше, пожалуйста, скажите.
решение1
Обычно журналы периодически ротируются, ротация в полночь — обычное дело. Многие приложения делают это автоматически.
Для тех, кто этого не делает, есть инструменты, logrotate
которые сделают ротацию. Многие программы настроены на повторное открытие своих журналов при отправке сигнала HUP, и это один из методов, используемых logrotate
.
Что нужно проверить:
- Все ли PID меняются. Если нет, то программы могут ротировать свои собственные журналы или соответствующим образом реагировать на ротацию своих журналов.
- Для программ, которые меняют PID, были ли они перезапущены в полночь? Если нет, проверьте их родителя, чтобы узнать, что он делает.
- Проверьте crontab для root, чтобы увидеть, какие процессы запускаются в конце дня.
- Проверьте crontab на предмет идентификатора пользователя процесса, чтобы увидеть, какие процессы запускаются в конце дня.
- Проверьте, записываются ли файлы журналов напрямую или с помощью средства записи журналов, которое ротирует журналы.