Хорошо, этот заголовок будет немного запутанным. Позвольте мне попытаться объяснить это немного лучше. Я строю программу регистрации. Программа будет иметь 3 основных состояния:
Запись в буферный файл циклического перебора, сохраняя данные только за последние 10 минут.
Запись в буферный файл без учета времени (запись всех данных).
Переименуйте весь буферный файл и запустите новый с данными за последние 10 минут (и измените состояние на 1).
Вот пример использования: Время от времени я испытывал некоторые узкие места в сети. Поэтому я хочу создать систему для записи трафика TCP, когда он обнаруживает узкое место (обнаружение через Nagios). Однако к тому времени, когда он обнаруживает узкое место, большинство полезных данных уже было передано.
Итак, мне бы хотелось, чтобы у демона все время было что-то вроде dumpcap
. В обычном режиме он будет хранить данные только за последние 10 минут (поскольку бессмысленно сохранять данные на лодке, если они не нужны). Но когда Nagios предупредит, я пошлю сигнал в демон, чтобы сохранить все. Затем, когда Naigos восстановится, он отправит другой сигнал, чтобы прекратить сохранение и сбросить буфер в файл сохранения.
Теперь проблема в том, что я не вижу, как правильно хранить вращающиеся 10 минут данных. Я мог бы хранить новый файл каждые 10 минут и удалять старые, если в режиме 1. Но это кажется мне немного грязным (особенно когда дело доходит до выяснения, когда в файле произошло предупреждение).
В идеале, сохраненный файл должен быть таким, чтобы предупреждение всегда находилось в отметке 10:00 в файле. Хотя это возможно для новых файлов каждые 10 минут, «исправлять» файлы к этому моменту кажется немного грязным.
Есть идеи? Должен ли я просто сделать вращающуюся файловую систему и объединить их в 1 в конце (делая довольно много постобработки)? Есть ли способ аккуратно реализовать файл с полукруглым циклом, чтобы не было необходимости в какой-либо последующей обработке?
Спасибо
Да, и на данном этапе язык не так важен (я склоняюсь к Python, но не возражаю против любого другого языка. Это менее важно, чем общий дизайн) ...