> Задача стоит следующая: есть удалённый хост для сбора данных с датчиков. Он
> сделан максимально компактным и малопотребляющим на базе минироутера TP-Link TL-MR3020
> с 3G модемом и флешкой. Датчики опрашиваются непрерывно с интервалом в
> 5 минут. Требуется данные с датчиков складывать в базу MySQL на Задача на самом деле дикой сложности. Возьми какую-нибудь Promela и промоделируй систему во всех переходных состояниях.
Во-первых net.ipv4.tcp_retries2 по умолчанию сильно превышает 5 минут. Спец. конфигурация возможна, но это геморрой - следить, чтобы никакая блядь не крутанула настройки после какого-нибудь апгрейда.
Во-вторых, если постоянно ожидать сбоя питания, то по каждой записи в файл нужно бы сбросить дисковые буфера и закрыть файл. То есть перезаписать минимум пару блоков. Так у тебя 10тыс. жизней и кончатся (100тыс. для старых SLC). Self-healing flash в продаже пока нет, могут вообще передумать выпускать.
Протокол переделать на UDP. Датчик опросил - плюнул наружу пакет, подождал X сек. ответа от сервера. Ответа нет - ещё неск. раз плюнул. Ответа всё нет или интерфейс лежит - пакет в очередь в память. Набралось X килобайт - скинули в файл.
Раутеру на питалово подключить конденсатор на полфарады-фараду. Напаять цепь опознавания пропажи питания, завести хотя бы и на кнопку WPS. Кнопка нажата - демон сбрасывает буфера на флешку и готовится умирать. Учти, что питание может вернуться. Ещё учти, что может дребезжать - то потухнет, то погаснет.
Опознавание ситуации "возврат после залёта", переброска файла с флешки и стирание файла - это уже просто.
А вообще грамотно - это не делать индустриальные системы из говна и палок.