FAQ php, MySQL, bash и т.д.

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
gnork
Сообщения: 54
Зарегистрирован: 08 янв 2013, 20:39

Re: FAQ php, MySQL, bash и т.д.

Сообщение gnork » 22 ноя 2013, 14:14

Urbas81 писал(а): Если это на линуксе, то я пас :mrgreen: я это делаю на WXP с сервером Majordomo, если есть машина с XP можно поставить и там по быстрому проверить.

Хотя на прошлой недели я запускал похожий файл, на роутере все работало, но там файл часов был, данные ни откуда не читались.
Всё нашлось. Это я, дурак, доступ к папке js не открыл... Спасибо за помощь.

gnork
Сообщения: 54
Зарегистрирован: 08 янв 2013, 20:39

Re: FAQ php, MySQL, bash и т.д.

Сообщение gnork » 26 ноя 2013, 14:46

Очередной вопрос от чайника без крышки.
Для того, чтобы на одной странице отображалось два графика, нужно просто весь кусок

Код: Выделить всё

<script type="text/javascript">
...
</script>
продублировать и запустить не в 'container', а в 'container1'? Или можно как-то заменой переменных обойтись?

Urbas81
Сообщения: 313
Зарегистрирован: 28 авг 2012, 14:22

Re: FAQ php, MySQL, bash и т.д.

Сообщение Urbas81 » 26 ноя 2013, 16:05

gnork писал(а):Очередной вопрос от чайника без крышки.
Для того, чтобы на одной странице отображалось два графика, нужно просто весь кусок

Код: Выделить всё

<script type="text/javascript">
...
</script>
продублировать и запустить не в 'container', а в 'container1'? Или можно как-то заменой переменных обойтись?
Имеется ввиду два разных графика или на одном графике два разных значения, если второе то этот вариант меня тоже интересует.

gnork
Сообщения: 54
Зарегистрирован: 08 янв 2013, 20:39

Re: FAQ php, MySQL, bash и т.д.

Сообщение gnork » 26 ноя 2013, 16:57

Urbas81 писал(а): Имеется ввиду два разных графика или на одном графике два разных значения, если второе то этот вариант меня тоже интересует.
Меня интересует именно случай с двумя разными графиками.

Dron
Сообщения: 207
Зарегистрирован: 08 мар 2013, 13:00

Re: FAQ php, MySQL, bash и т.д.

Сообщение Dron » 26 ноя 2013, 17:15

gnork писал(а):Очередной вопрос от чайника без крышки.
Для того, чтобы на одной странице отображалось два графика, нужно просто весь кусок

Код: Выделить всё

<script type="text/javascript">
...
</script>
продублировать и запустить не в 'container', а в 'container1'? Или можно как-то заменой переменных обойтись?
Urbas81 писал(а): Имеется ввиду два разных графика или на одном графике два разных значения, если второе то этот вариант меня тоже интересует.
зависит от того, чем строите графики. задавайте вопросы подробнее. независимо от того, писАлось ли раньше, чем Вы строите график.
я вот зашёл на последнюю страничку и названия скрипта не увидел, ссылок на него тоже.

gnork
Сообщения: 54
Зарегистрирован: 08 янв 2013, 20:39

Re: FAQ php, MySQL, bash и т.д.

Сообщение gnork » 19 дек 2013, 14:19

Ситуация:
Запущен основной скрипт, снимающий показатели. Запущен скрипт ICQ-бота. Бот по запросу отправляет данные.
Нужно:
Отправить по ICQ сообщение при наступлении какого-то события (не по запросу.
Вопрос:
Как это реализовать?
1.Событие должен отслеживать бот?
2.Событие отслеживает основной цикл и передает команду боту?
3.Событие отслеживает основной цикл и передать в обход бота?

Mixman
Сообщения: 395
Зарегистрирован: 17 фев 2013, 23:49
Откуда: Волгодонск, Ростовская обл.
Контактная информация:

Re: FAQ php, MySQL, bash и т.д.

Сообщение Mixman » 19 дек 2013, 15:10

ICQ еще пользуются?

Тут наверно как вам более удобно. Однозначного пути нет.Если возможно легко передавать данные боту, то я больше ЗА 2 вариант.

lion_sm
Сообщения: 49
Зарегистрирован: 19 ноя 2013, 19:07

Re: FAQ php, MySQL, bash и т.д.

Сообщение lion_sm » 19 дек 2013, 15:14

Если основной скрипт умеет сам отправлять - то п.3, если не умеет, то п.2 - каждый должен заниматься своей задачей.
Опять же, умеет ли ICQ-бот принимать внешние команды и передавать их далее?

gnork
Сообщения: 54
Зарегистрирован: 08 янв 2013, 20:39

Re: FAQ php, MySQL, bash и т.д.

Сообщение gnork » 19 дек 2013, 16:08

Mixman писал(а):ICQ еще пользуются?

Тут наверно как вам более удобно. Однозначного пути нет.Если возможно легко передавать данные боту, то я больше ЗА 2 вариант.
lion_sm писал(а):Если основной скрипт умеет сам отправлять - то п.3, если не умеет, то п.2 - каждый должен заниматься своей задачей.
Опять же, умеет ли ICQ-бот принимать внешние команды и передавать их далее?
Ну а как еще просто получить оперативную связь с системой, которая выходит в интернет через GSM-модем без статичного IP?
Мне тоже больше нравится 2 вариант.
Тогда следующий вопрос. Чем в PHP это делается?

Mixman
Сообщения: 395
Зарегистрирован: 17 фев 2013, 23:49
Откуда: Волгодонск, Ростовская обл.
Контактная информация:

Re: FAQ php, MySQL, bash и т.д.

Сообщение Mixman » 19 дек 2013, 16:21

Ну мы тут все не гадалки, поэтому озвучивайте хотя бы названия скриптов, ботов и желаемые действия

gnork
Сообщения: 54
Зарегистрирован: 08 янв 2013, 20:39

Re: FAQ php, MySQL, bash и т.д.

Сообщение gnork » 19 дек 2013, 16:34

Mixman писал(а):Ну мы тут все не гадалки, поэтому озвучивайте хотя бы названия скриптов, ботов и желаемые действия
Названия скриптов вряд ли чего скажут. У меня все самопальное. Пусть будет аа.php и bb.php Нужно чтобы уже работающий aa.php передал некую команду/информацию/данные уже работающему bb.php. A bb.php должен эту информацию получить и отправить требуемый текст.
Примерно так:
Оба не спят, ICQ есть у bb, но он сидит в подвале и обстановку вокруг не видит.
аа: Наступило утро. Надо оповестить хозяина.
bb: Ща сделаем. (пишет в ICQ) Хозяин, тут утро приключилось. Что делать?

Dron
Сообщения: 207
Зарегистрирован: 08 мар 2013, 13:00

Re: FAQ php, MySQL, bash и т.д.

Сообщение Dron » 20 дек 2013, 13:29

gnork, самый простой вариант (если я правильно понимаю, что скрипты работают круглосуточно и из 1го нельзя вызвать второй):
сделать скриптом аа текстовый файлик (ну или запись в БД, что есть идеальный вариант, логирование не помешает) с текстом

Код: Выделить всё

передать по icq: внезапное утро
а скрипт bb при каждом проходе проверяет этот файлик, и, если находит команду, выполняет её и очищает файлик (или добавляет к записи в БД отметочку "выполнено").

Urbas81
Сообщения: 313
Зарегистрирован: 28 авг 2012, 14:22

Re: FAQ php, MySQL, bash и т.д.

Сообщение Urbas81 » 20 дек 2013, 13:53

gnork писал(а): Ну а как еще просто получить оперативную связь с системой, которая выходит в интернет через GSM-модем без статичного IP?
Мне тоже больше нравится 2 вариант.
У меня обкатывается вариант с отправкой бесплатных сообщений через sms.ru, IP тоже динамический работает DDns, ну и плюс еще сделал чтоб отправлялся в sms текущий IP при появлении интернета, так как он у меня появляется после проплаты каждый день. Пока сбоев небыло.

Mixman
Сообщения: 395
Зарегистрирован: 17 фев 2013, 23:49
Откуда: Волгодонск, Ростовская обл.
Контактная информация:

Re: FAQ php, MySQL, bash и т.д.

Сообщение Mixman » 20 дек 2013, 14:04

Urbas81 писал(а):У меня обкатывается вариант с отправкой бесплатных сообщений через sms.ru
Да, о этом сервисе я писал тут

Ну а если двусторонней связи, то как вариант можно рассмотреть и email. Тут мне кажется проще обрабатывать, чем по icq.

gnork
Сообщения: 54
Зарегистрирован: 08 янв 2013, 20:39

Re: FAQ php, MySQL, bash и т.д.

Сообщение gnork » 20 дек 2013, 15:11

Mixman писал(а): Ну а если двусторонней связи, то как вариант можно рассмотреть и email. Тут мне кажется проще обрабатывать, чем по icq.
Email у меня присутствует для отправки регулярных отчетов, статистики, кадров с камер и т.п. и приемки не срочных команд. А для оперативного управления ICQ очень удобно использовать. С обработкой там никаких проблем, работает отлично.

gnork
Сообщения: 54
Зарегистрирован: 08 янв 2013, 20:39

Re: FAQ php, MySQL, bash и т.д.

Сообщение gnork » 23 дек 2013, 10:06

И через БД и через файл сделать получилось, пока не знаю на чем остановиться. Но. Неужели в РНР нет возможности для прямой передачи информации между запущенными скриптами? Пусть не адресно, а через некую общедоступную переменную, которую первый скрипт выкладывает "не-знаю-куда-в оперативную-память", а все остальные скрипты в системе могут эту переменную считать/изменить/удалить.
И еще. Какие есть способы определить, запущен ли конкретный скрипт? С целью проверки его работы и незапуска второй копии.

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: FAQ php, MySQL, bash и т.д.

Сообщение Andrey_B » 23 дек 2013, 11:39

В PHP присутствует достаточное количество средств для межпроцессного взаимодействия.
Вот основные: сокеты, Shared Memory, PCNTL, файлы, СУБД (MySQL)

Что касается проверки скрипта, то это можно делать с помощью системных утилит (например, ps ax), если PHP-скрипт запускается из shell-скрипта, а можно с помощью lock-файлов. Последний способ позволяет самому скрипту выяснять, запущен ли он уже или нет.

И по той и по другой проблеме есть масса информация в сети. Эти вопросы слишком общие, чтобы можно было опубликовать конкретное решение в сообщении.

Mixman
Сообщения: 395
Зарегистрирован: 17 фев 2013, 23:49
Откуда: Волгодонск, Ростовская обл.
Контактная информация:

Re: FAQ php, MySQL, bash и т.д.

Сообщение Mixman » 01 авг 2014, 15:28

Подскажите как сделать , желательно с примером.
Мне из скрипта php нужно отправить в другой php скрипт данные. Интересует именно напрямую, а не через БД.

Прочел про cURL, не совсем понял, как это делать... Там указывается серверный (/var/www/)... или http:// путь?
cURL передает и на этом действие скрипта-источника заканчивается или скрипт ждет выполнения скрипта-приемника?

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: FAQ php, MySQL, bash и т.д.

Сообщение Andrey_B » 01 авг 2014, 16:07

Эта тема в общем довольно подробно освещается в Интернете.
Например
http://habrahabr.ru/post/193270/
http://www.workingsoftware.com.au/page/ ... _Threading
http://licson.net/post/cross-script-com ... on-in-php/

Mixman
Сообщения: 395
Зарегистрирован: 17 фев 2013, 23:49
Откуда: Волгодонск, Ростовская обл.
Контактная информация:

Re: FAQ php, MySQL, bash и т.д.

Сообщение Mixman » 01 авг 2014, 20:43

Нашел вариант, который искал. Может кому понадобится.

Код: Выделить всё

<?php
function my_get_content($hostname, $path) 
{ 
//устанавливаем соединение, имя которого 
//передано в параметре $hostname 
$fd=fsockopen($hostname, 80, $errno, $errstr, 30); 
//проверяем успешность установки соединения 
if(!fd) echo "$errstr ($errno)<br>/>\n"; 
else 
	{ 
	//формируем HTTP-запрос для передачи его серверу 
	$headers="GET $path HTTP/1.1\r\n"; 
	$headers.="Host: $hostname\r\n"; 
	$headers.="Connection: Close\r\n\r\n"; 
	//отправляем HTTP-запрос серверу 
	fwrite ($fd, $headers); 
	fclose($fd); 
	} 
} 

my_get_content("localhost", "/key.php?key_label=light_room&key_pio=1");
?>
Как мне показалось, эта функция работает быстрее file_get_contents, а главное для меня - не ждет ответа (может поэтому и быстрее).

Пробовал через эту связку отправлять на мегу GET запросы - быстрее реагирует.

Ответить