Шаблонное мышление вредно!

… сказал Штирлиц.

И был прав. Вот вам пример из жизни. Один из моих скриптов производит анализ входных данных и пишет в краткую сводку в один файл если всё хорошо и полный дамп данных если всё плохо. И вот, сегодня я заметил, что в файлах дампов пусто. Появлялись такие файлы не часто и потому я грешил на возможные ошибки в линии подачи данных, либо же вообще в моём скрипте анализа.

Особенно крутым спецом я себя не считаю, хотя и за полного олуха не держу. Стараюсь адекватно воспринимать свой уровень. При этом я склонен к занижению самооценки. Вот потому и грешу частенько на свой код. В общем, я потратил уйму времени на размышления, почему же дампы могут быть пустыми. И уже даже сделал пару исправлений в скрипте, дабы он не писал совсем уж пустые дампы. Но тут мне стало интересно, что пишется в файлы сводок. Оказалось, что и эти файлы пусты.

Первым делом я подумал, что всё, кирдык — система решила обвалиться. По полной. Втихаря, но серьёзно. Так, чтобы всем было весело в течение пары дней. Но как тогда данные попадали дальше? А легко. Дело в том, что система имеет запасную линию доставки сводок до места назначения. Если первая линия работает рилтайм, то вторая дёргается каждый час и является по сути защитным механизмом. Поначалу таких линий было три, но третья была явно лишней. Слишком уж она была своеобразной и потому нагружала два сервера по самые уши. В итоге сейчас имеется только две линий, о которых я сказал выше.

Итак, система работает, но файлы пустые. Замечательно. Вот тут-то меня и осенила гениальная идея.

df -h

сказал я и мне сразу открылась истина. На одном из разделов кончилось место. Совсем. Абсолютно.

P.S. Мораль сей басни — нефиг на рожу пенять, если зеркало кривое. 😉

2 комментария

  1. А вообще-то все дисковые операции возвращают значения на которые мы часто просто забиваем. Равно как и на errno сишный. Выделение оперативки и проверка на выделение памяти malloc’ом уже вошло в привычку, а вот на дисковые операции фиг. После того как fopen отработал — хоть трава не расти:)

  2. В том скрипте я могу получить статус операции, но мне это ничего не даст. Скрипт должен работать быстро, а отправка письма может привести к лишним задержкам. В итоге система потонет в своих же соплях.
    Ну а писать в файл в данном случае тоже бессмысленно — места на диске-то нету. 😉

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.