LINUX.ORG.RU

Демон посылающий на сайт записи из базы данных


0

1

Привет друзья. Имеется одноплатный компьютер на базе ARM процессора OMAP L138. На плате работает Linux. В Linuxe запущены всякие разные программы опроса датчиков, сбора данных и т.п. Данные записываются в локальную базу. Нужно сделать так, чтобы данные с этой базы каждые 30 секунд отправлялись на сайт по HTTP. Там их уже обработают. С чего начать? До этого плата была другая и на ней был Windows (Прогу писал на делфи) все работало. Помогите перестроиться.



Последнее исправление: podovalov5 (всего исправлений: 1)

каждые 30 секунд отправлялись на сайт по HTTP

Зависит от твоих предпочтений. Я бы советовал curl.

CYB3R ★★★★★
()

напиши прогу на C или C++. можно например в цикле запускать функцию system(), а из нее звать curl

или если нужен скриптовый язык - на python. В цикле звать subprocess.call

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)

#!/bin/bash

echo «select * from table;» | $dbaccess > /var/www/site/data

sleep 30

Ну или если «сайт» на другом компе, то варианты: подмонтировать какую-нибудь сетевую файловую систему или воспользоваться курлом.

slamd64 ★★★★★
()

всякие разные программы

Обычно всякие разные программы умеющие писать, умеют и читать.

Данные записываются в локальную базу.

Способ чтения зависит от типа/формата базы

отправлялись на сайт по HTTP

HTTP это клиент-сервер, т.е. подразумевает ответ на запросы, а не просто посылку.

arson ★★★★★
()
Ответ на: комментарий от podovalov5

установить из пакетов? какая там ОС стоит?

если установить из пакетов нельзя - собрать из исходников. Ключевые запросы к гуглу - «how to build X from source», где вместо X подставляешь что тебе надо, н-р curl или python. Вот что ищется для curl первой строчкой гугла: http://curl.haxx.se/docs/install.html

если совсем все плохо - пиши на bash. По этому поводу могу посоветовать ман Advanced Bash Scripting.

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

Совсем все плохо, конечно. А чего ты хочешь от человека, который на делфи всю жизнь программировал. Мне и самому теперь стыдно.
За советы спасибо. На плате стоит ОС, которая вместе с процессорным модулем поставлялась, только немного пересобранная (опять-таки не мной). В консоли uname -a выдала следующее:

Linux acs 2.6.37 #35 PREEMPT Sat Jul 6 20:09:33 MSK 2013 armv5tejl GNU/Linux

podovalov5
() автор топика
Ответ на: комментарий от podovalov5

юзаль дельфи до версии 7 (потом они нафигачили жирномонстра, который не смог потянуть комп), помойму это лучшее что сделали в плане конструкторов :3

stevejobs ★★★★☆
()
Ответ на: комментарий от RedPossum

Каждые тридцать секунд проверять обновились ли записи в локальной базе данных и отправлять, если обновились, на сервер. Методом POST.

podovalov5
() автор топика
Ответ на: комментарий от slamd64

или воспользоваться курлом.

Баш умеет /dev/tcp/<ip>/<port>, правда если собран правельно. На другом конце можно или написать простенький сервер, или на худой попользовать nc -klp <port> или inetd и сделать все на баше.

naszar
()
Последнее исправление: naszar (всего исправлений: 1)
Ответ на: комментарий от podovalov5

что за база? если какая-нибудь фичастая, сделай триггер на интересующие таблички и пользуй UDF, даже каждые 30 секунд не надо будет ждать.

Если нет, то возьми какой-нибудь питон, оно и попроще и повеселее. погугли requests и DB API. А пускай по крону. Ну или можешь заморочиться и сервис сделать.

RedPossum ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.