3 558 955 — рівно стільки секунд минуло з моменту останнього успішного запуску сервера Puppeteer!
На момент написання цієї публікації аптайм мого сервера, на якому розміщено систему моніторингу сторінки стану операційної системи NetBSD-on-Wii проєкту Алекса Гейдока, становить 41,19 доби. Локальний Puppeteer було запущено приблизно о 05:13:43.654, 17 травня (GMT).
Водночас сама система NetBSD, яку Алекс запустив 21 квітня о 17:12:00, уже пропрацювала 25 днів, 12 годин, 1 хвилину і 43 секунди на момент запуску мого моніторингу.
Що ж я тут рахую?
З цікавості я підрахував не лише аптайм свого моніторингу, а й проміжок часу між запуском системи на консолі Wii та моментом, коли мій скрипт почав відстеження. Але значно цікавіше інше — з якими труднощами я зіткнувся за весь час роботи.
Ви вже, напевно, чули про збій, який стався не з моєї вини і навіть не з вини Алекса 10 червня. Але зараз не про нього мова. Тоді, до речі, я поділився з Алексом міркуваннями щодо власної проблеми з публікацією неповних скриншотів. Частина знімків — учора, наприклад, приблизно 5 із 48 — зберігаються неповними.
Структура звіту
Можливо, ви ще не знайомі зі структурою звіту, який генерується скриптом на сервері Гейдока. Він складається з:
- ASCII‐лого Wii у верхній частині;
- заголовка blog.infected.systems NetBSD Wii Status;
- часу генерації звіту.
Скрипт, як розповідав Алекс, запускається кожні 15 хвилин за допомогою crontab і збирає результати виконання команд:
uname -a
— інформація про систему;uptime
— час роботи й навантаження;bsdfetch
— аналог neofetch для BSD‐систем;vmstat
— статистика віртуальної пам'яті;iostat -xz ld0
— статистика введення/виведення диска;df -h /
— використання дискового простору;top
— список активних процесів.
«Я склав простий shell‐скрипт, який запускається з crontab кожні 15 хвилин і виводить системну статистику в базовий HTML‐файл у вебкорені.»
Проблема з синхронізацією
За закономірністю, яку я помітив, його скрипт базується на поступовому заповненні HTML‐файлу. Коли виконується одна з 7 команд, shell‐сценарій записує відповідь прямо у файл. Але мій моніторинг часто «поспішає» заглядати на сторінку і робить скриншоти до повного заповнення сторінки.
Іноді не видно відповіді команди bsdfetch
і всього, що нижче, а іноді останньої команди — top
.
Не можу сказати, що я нічого не пробував для вирішення цієї проблеми. Перед створенням скриншота мій код перевіряє, чи є на сторінці блок top
. І лише коли він наявний, створюється знімок. Але це не допомагає, і це дратує.