Собираю сервер...

Настройка серверного ПО и т.д.

Модераторы: dobs, bj

Сообщение
Автор
baytuch
Сообщения: 925
Зарегистрирован: Сб мар 14, 2009 00:23
Откуда: пгт. Войтовцы
Контактная информация:

#61 Сообщение baytuch » Чт авг 04, 2011 18:57

Теперь даже почта работает ( связка postfix и dovecot ):

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

root@Laptop:~# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready ( MySERVER project ).
user root
+OK
pass password
+OK Logged in.
list
+OK 3 messages:
1 1568
2 1569
3 1564
Fusion Player — модуль для CMS PHP-Fusion (demo video: посмотреть)

Не использую пиратского ПО
IP-PBX Asterisk українською. Зроби краще!

«ХО» – мое все.
А ты перевел свой домен на DNSSEC?

Slackware userИзображение

baytuch
Сообщения: 925
Зарегистрирован: Сб мар 14, 2009 00:23
Откуда: пгт. Войтовцы
Контактная информация:

#62 Сообщение baytuch » Вс мар 04, 2012 19:18

Итак, дорогие друзья, рад снова оказаться на этом форуме. Прошу прощения за длительное отсутствие ( на это были причины ), но теперь снова тут...

И грянул апгрейд...

Первое, что я сделал, это обновил БИОС до последней версии. Да, это довольно ответственная операция, которая требует тщательной подготовки, но мера была крайне необходима, поскольку не работали винчестера объемом более 20 Гбайт, что меня крайне смущало... А еще был один интересный нюанс: в качестве модема используется мобильный телефон Nokia 3120 Classic, который заставляет виснуть машину "наглухо", при попытке загрузится...

Дело было так: первое, что я сделал, это узнал название платы и ее версию. К слову, у этой платы есть несколько модификаций и выпускается, к тому же, с разными наборами системное логики ( может быть собрано на базе чипсета Интел И-440, а может быть на чипсете ВИА ). На тот момент у меня стояла винда и я с спокойно запустит прожку AIDA 32, которая и сообщила мне всю необходимую информацию, но, как оказалось, рано я радовался, так как информация оказалась не совсем верной... Если бы я тогда не засомневался, то... В общем, по данным проги у меня плата была в чипсетом ВИА версии 1.0, но как это возможно, если на самой плате указано белой краской по лакированному текстолиту, что версия 2.0. Что делать?.. Шить нельзя... Помогла та же AIDA 32, которая также выводила версию самой версии БИОС... А версия-то к 2.0, что подтвердили другие источники... Что уже давало бодрый оптимизм и веру в будущие... :)

А далее по инструкции:
1) нашел ихний сайт;
2) скачал прошивщик;
3) создал загрузочную дискету MS-DOS;
4) скопировал содержимое архива, что был загружен с сайта на дискету;
5) ребут;
6) нервно смотрим на экран, в надежде, что все будет гуд;
7) лицезрим, как наш комп загружается с новым биосом;
8) заходим в настройки биос и сбрасываем все настройки. Выполняем настройку и сохраняем;
9 ) балдеем от того, что все вышло :)

Итак, теперь на моем сервере установлен жесткий диск Samsung 160 Гбайт. Напоминаю, что ранее был винт 7.5 Гбайт. В качестве ОС выступает Slackware 10.2, которая на тестах показала себя к наиболее стабильная... К установленным программам было добавлено всего две программы: Knemo и Postfix. В качестве модема выступает, упомянутый выше, сотовый телефон, который теперь позволяет развить скорость в обе стороны до 20 Кбат сек, при пинге до 200 милисекунд.... Как видите, "игра стояла свеч"...

Проблемы, которые не могу решить...

Все бы хорошо, но не все так безоблачно. Дело с том, что неким таинственным образом у меня наблюдаются проблемы с выгрузкой файлов при использовании брайзера, то есть по http, с ftp, как бы проблем не наблюдалось. Все мои попытки выявить проблему не дали результата. Начну с того, что на загрузку все отлично... Попытка проверить скорость выгрузки с самого сервера также показала, что все работает( на сервере расположил некий файл, а потом начал "тянуть" это с помощью своего ВПС. Результат: 15-18 Кбай/сек, что является отличным результатом. Также начал грешить на размер MTU у устройств по пути к серверу, но, так оказалось, у меня везде автоматом стоит 1500 байт. Дефект проявляется в неком затыке, при попытке отправить файл. При этом видно, что браузер пытается возобновить отправку неоднократно ( смена браузера не дала результата )... Как результат, отправка файла размером 5 М за 1 час, при норме в 5-10 минут и невиданный перерасход трафика ( до 6х )... Но в чем проблема?..

*Дополнительные пакты для ОС Slackware 10.2, которые были указаны, можно скачать тут
Fusion Player — модуль для CMS PHP-Fusion (demo video: посмотреть)

Не использую пиратского ПО
IP-PBX Asterisk українською. Зроби краще!

«ХО» – мое все.
А ты перевел свой домен на DNSSEC?

Slackware userИзображение

baytuch
Сообщения: 925
Зарегистрирован: Сб мар 14, 2009 00:23
Откуда: пгт. Войтовцы
Контактная информация:

#63 Сообщение baytuch » Сб мар 17, 2012 01:03

Ребята, подскажите, пожалуйста, как этот код оформить ввиде скрипта:

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

root@Laptop:~/Desktop# cu -l /dev/ttyACM0 -s 115200<enter>
Connected.
ATZ<enter>
OK
AT<enter>
OK
~.<enter>

Disconnected.
root@Laptop:~/Desktop#
А то малось застрял...

----------------

Е-ма-йо... Сколько тех скриптов видел в нете... Они не могут понять, что модему нужно время на выполнение команды... Ужас...

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

<?php

$n_dev = "/dev/ttyACM0";

$d_dev = fopen ($n_dev, "w+");

fwrite ($d_dev, "ATZ\r\n");

for ( $i=0; $i<1000000; $i++){
};

fwrite ($d_dev, "AT\r\n");

for ( $i=0; $i<1000000; $i++){
};

fwrite ($d_dev, "ATD *111#\r\n");

fclose ($d_dev);

?>
---------------------

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

#!/bin/bash

f_modem="/dev/ttyACM0";

sub="\x0D0A";

echo -e "ATZ$sub" > $f_modem;

sleep 0.1s;

echo -e "AT$sub" > $f_modem;

sleep 0.1s;

echo -e "ATD *111#$sub" > $f_modem;
Хлопцы, в общем, коекак соорудил прогу на C++:

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

#include <iostream.h>
#include <cstring>
#include <string>

using namespace std;

const char *st = "/dev/ttyACM0";

//Объявление переменных
char *line = new char[100];
char *line_s = new char[100];
FILE * d_dev;
char *s_dat = new char[100];
string *s_array = new string[10];
char *dat = new char[100];

//Функция работы с выводом модема
string* scan_data(FILE * d_dev){
  int n_s = 0;
  while (!feof(d_dev)){
    s_dat = fgets(line_s, 100, d_dev);
    s_array[n_s] = s_dat;
    cout << n_s;
    cout << s_dat;
    n_s = n_s + 1;
  };
  cout << "ok";
  return s_array;
};

//Основная программа
int main(void){ 
  cout << "Modem Control running...\n";

  d_dev = fopen(st, "w+");

  fprintf(d_dev, "AT\r");
  sleep(0.3);
  scan_data(d_dev);

  fclose(d_dev);
  cout << "program ended\n"; 
};
Но есть небольшая проблема -- при попытке найти конец файла ( мы же с файлами работаем ), программа тупо виснет, ожидая данных от модема. Причем на любом языке... Не пойму...
Как найти конец файла?..
Fusion Player — модуль для CMS PHP-Fusion (demo video: посмотреть)

Не использую пиратского ПО
IP-PBX Asterisk українською. Зроби краще!

«ХО» – мое все.
А ты перевел свой домен на DNSSEC?

Slackware userИзображение

dobs
HO Moderators
Сообщения: 2504
Зарегистрирован: Вс апр 09, 2006 14:42
Откуда: /home/Ukraine/Kiev
Контактная информация:

#64 Сообщение dobs » Сб мар 17, 2012 19:59

Мож count сделать, хотя я не уверен что у девайса можно получить конеЦ

П.С.

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

for ( $i=0; $i<1000000; $i++){ 
 };
Боян, надо юзать sleep

baytuch
Сообщения: 925
Зарегистрирован: Сб мар 14, 2009 00:23
Откуда: пгт. Войтовцы
Контактная информация:

#65 Сообщение baytuch » Сб мар 17, 2012 22:32

Да, это пример... Так как пхп знаю лучше всего, его и пустил в дело... :)

Пробовал найти конец потока на пхп, так оно ступором, ожидая ответа...

Пробую сделать библиотеку для работы с модемом на C++. Работаю с портом, поскольку нужно настроить скорость и включить аппаратное пр. Много вопросов...
Проблема: потеря данных с модема... Причем, как-то хаотично -- то есть, то нет...
Это, как пример: http://softexpert.wordpress.com/2007/10 ... x-using-c/ и http://www.tek-tips.com/viewthread.cfm?qid=924030

--------------

Йобзд... Спасибо за подсказку...

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

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <termios.h>
#include <unistd.h>
#include <termios.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>


int main(){
  int fd;

  fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY);
  fcntl(fd, F_SETFL, 0);



  struct termios options;
  tcgetattr(fd, &options);

  cfsetispeed(&options, B115200);
  cfsetospeed(&options, B115200);
  cfmakeraw( &options );

  options.c_cflag &= ~PARENB;
  options.c_cflag &= ~CSTOPB;
  options.c_cflag &= ~CSIZE;
  options.c_cflag |= CS8;

  tcflush(fd, TCIFLUSH);
  tcsetattr(fd, TCSANOW, &options);

  cout << write(fd, "AT\r", 3);
   
                                                           usleep(100000);;

  char *line = new char[20];
  cout << "\n\r";
  cout << read(fd, line, 20);
  cout << "\n";
  cout << line;

  close(fd);

};
Кааапец... Сколько времени угробил....
Fusion Player — модуль для CMS PHP-Fusion (demo video: посмотреть)

Не использую пиратского ПО
IP-PBX Asterisk українською. Зроби краще!

«ХО» – мое все.
А ты перевел свой домен на DNSSEC?

Slackware userИзображение

baytuch
Сообщения: 925
Зарегистрирован: Сб мар 14, 2009 00:23
Откуда: пгт. Войтовцы
Контактная информация:

#66 Сообщение baytuch » Ср мар 21, 2012 05:11

Итак, дорогие друзья, рад сообщить вам, что мой опыт удался. Моей целью было самостоятельно написать приложение, которое могло бы работать с мобильным телефоном и отсылать смс. К слову, это задача не сильно сложная, если не учитывать, что сообщения кодируются в формат PDU. Собсно, над кодером и карячился...
Написано на C++...

Что такое PDU?
Вот эту масу программа посылает в телефон:
079183602720111101000C91839087761843000022CD3C685A945A8B5290F84D07F57C20723A7C76BFE7F4F41A34CFCFE9E53600000000

:)
Последний раз редактировалось baytuch Пт мар 23, 2012 16:39, всего редактировалось 2 раза.
Fusion Player — модуль для CMS PHP-Fusion (demo video: посмотреть)

Не использую пиратского ПО
IP-PBX Asterisk українською. Зроби краще!

«ХО» – мое все.
А ты перевел свой домен на DNSSEC?

Slackware userИзображение

dobs
HO Moderators
Сообщения: 2504
Зарегистрирован: Вс апр 09, 2006 14:42
Откуда: /home/Ukraine/Kiev
Контактная информация:

#67 Сообщение dobs » Ср мар 21, 2012 21:22

Раз Вас так сильно интересуют телефоны, то погуглите про Asterisk очень популярная штука...

baytuch
Сообщения: 925
Зарегистрирован: Сб мар 14, 2009 00:23
Откуда: пгт. Войтовцы
Контактная информация:

#68 Сообщение baytuch » Пт мар 23, 2012 16:31

По моему, это все равно, что пулять по мухи из базуки :)... Стоят задачи гораздо более скромные — нужно работать с смс сообщениями ( банальный проем/отправка, автоответчик ( прием и обработка команд ) и рассылка), сканирование состояния телефона ( ну, там масса параметров. Например, заряд батареи и т.п. ) и мониторинг состояния сети ( самое вкусное и полезное :) ). Последний пункт меня интересует больше всего. Это нужно для определения поточного состояния сети, а так же для ведения статистики и анализа. Что поможет быть в курсе всевозможных перегрузок и аварий... А то тыц-пыц... А пинга нема... К тому-же, могу ребятам из "Киевстара" сделать экспорт...

За наводку спасибо — любопытная прога, уже второй день листаю... :)
Fusion Player — модуль для CMS PHP-Fusion (demo video: посмотреть)

Не использую пиратского ПО
IP-PBX Asterisk українською. Зроби краще!

«ХО» – мое все.
А ты перевел свой домен на DNSSEC?

Slackware userИзображение

baytuch
Сообщения: 925
Зарегистрирован: Сб мар 14, 2009 00:23
Откуда: пгт. Войтовцы
Контактная информация:

#69 Сообщение baytuch » Сб мар 24, 2012 04:58

Народ, если кому нужен драйвер мод модем, то вот... Не реализована возможность ожидания данных от модема. Все основано но том, что модем нужно опросить... Остатьное не покажу, так так оно представляет экономическую ценность... :wink:

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

#include <driver.h>  //Заголовочный файл модуля
 
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
#include <termios.h>
#include <fcntl.h>
 
using namespace std;
struct termios options;
 
static int fd;
 
static const char* dev_file(string dev){        //Генерация файла устройства
  string dev_dir = "/dev/";
  dev_dir = dev_dir + dev;
  return dev_dir.c_str();
};
 
static speed_t table_speed(int speed_int){      //Таблица констант скоростей
 
  speed_t speed_port;
 
  if ( speed_int == 0 ){ speed_port = B0; };
  if ( speed_int == 1 ){ speed_port = B50; };
  if ( speed_int == 2 ){ speed_port = B75; };
  if ( speed_int == 3 ){ speed_port = B110; };
  if ( speed_int == 4 ){ speed_port = B134; };
  if ( speed_int == 5 ){ speed_port = B150; };
  if ( speed_int == 6 ){ speed_port = B200; };
  if ( speed_int == 7 ){ speed_port = B300; };
  if ( speed_int == 8 ){ speed_port = B600; };
  if ( speed_int == 9 ){ speed_port = B1200; };
  if ( speed_int == 10 ){ speed_port = B1800; };
  if ( speed_int == 11 ){ speed_port = B2400; };
  if ( speed_int == 12 ){ speed_port = B4800; };
  if ( speed_int == 13 ){ speed_port = B9600; };
  if ( speed_int == 14 ){ speed_port = B19200; };
  if ( speed_int == 15 ){ speed_port = B38400; };
  if ( speed_int == 16 ){ speed_port = B57600; };
  if ( speed_int == 17 ){ speed_port = B115200; };
  if ( speed_int == 18 ){ speed_port = B230400; };
 
  return speed_port;
};
 
//Функция драйвера
extern string driver(string device, int speed, string line, int com){
 
  string out;
  out = "";
 
  if ( com == 0 ){                                //Открытие устройства и настройка порта
 
    fd = open(dev_file(device), O_RDWR | O_NOCTTY | O_NDELAY);
    fcntl(fd, F_SETFL, 0);
 
    tcgetattr(fd, &options);
 
    cfsetispeed(&options, table_speed(speed));
    cfsetospeed(&options, table_speed(speed));
    cfmakeraw( &options );
 
    options.c_cflag &= ~PARENB;
    options.c_cflag |= ~CSTOPB;
    options.c_cflag &= ~CSIZE;
    options.c_cflag |= CS8;
 
    tcflush(fd, TCIFLUSH);
    tcsetattr(fd, TCSANOW, &options);
  };
 
  if ( com == 1 ){                                   //Работа с устройством
 
    write(fd, line.c_str(), line.length());
    usleep(100000);
 
    char *buff = new char[384];
    char *buff_stat = new char[10];
    char *cache = new char[1];
    bool t_break = false;
    bool t_clean = false;
    const string c_ok = "OK";            //Устройство сообщает, что все выполнено успешно
    const string c_error = "ERROR";      //Устройство сообщает, что произошла ошибка
    const string c_sub = ">";            //Устройство ожидает данные ( это последный байт )
    for ( int i=0; i<384; i++ ){
      read(fd, cache, 1);
      usleep(10000);
      buff[i] = cache[0];
      for ( int s=0; s<2; s++ ){
        buff_stat[s] = buff[i-(2-s)];
        if ( ( char *) buff_stat == c_ok ){
          t_break = true;
          break;
        };
      };
      for ( int s=0; s<10; s++ ){
        buff_stat[s] = 0;
      };
      for ( int s=0; s<5; s++ ){
        buff_stat[s] = buff[i-(5-s)];
        if ( ( char *) buff_stat == c_error ){
          t_break = true;
          break;
        };
      };
      for ( int s=0; s<10; s++ ){
        buff_stat[s] = 0;
      };
      if ( cache == c_sub ){
        t_break = true;
        t_clean = true;
      };
      if ( t_break == true ){
        break;
      };
    };
    out = ( char* ) buff;
    if ( t_clean == false ){  //Забор с устройства оставшихся символов
      read(fd, buff, 100);
    };
  };
 
  if ( com == 2 ){                                   //Закрытие устройства
 
    close(fd);
 
  };
 
  return out;
};
alpha version
Fusion Player — модуль для CMS PHP-Fusion (demo video: посмотреть)

Не использую пиратского ПО
IP-PBX Asterisk українською. Зроби краще!

«ХО» – мое все.
А ты перевел свой домен на DNSSEC?

Slackware userИзображение

dobs
HO Moderators
Сообщения: 2504
Зарегистрирован: Вс апр 09, 2006 14:42
Откуда: /home/Ukraine/Kiev
Контактная информация:

#70 Сообщение dobs » Сб мар 24, 2012 14:09

Я б не стал заморачиваться над шаманством с мобилой, это прошлый век, а вот привязать мобилу к Астериску это уже что-то...

baytuch
Сообщения: 925
Зарегистрирован: Сб мар 14, 2009 00:23
Откуда: пгт. Войтовцы
Контактная информация:

#71 Сообщение baytuch » Сб мар 24, 2012 16:57

Но я хочу сделать сам... К тому-же придумал, как прицепить прогу к PHP. -- по средством сокетов... Это же можно... Все... 8)
Fusion Player — модуль для CMS PHP-Fusion (demo video: посмотреть)

Не использую пиратского ПО
IP-PBX Asterisk українською. Зроби краще!

«ХО» – мое все.
А ты перевел свой домен на DNSSEC?

Slackware userИзображение

baytuch
Сообщения: 925
Зарегистрирован: Сб мар 14, 2009 00:23
Откуда: пгт. Войтовцы
Контактная информация:

#72 Сообщение baytuch » Вс мар 25, 2012 00:00

По мере, займусь той прогой тоже. Просто, хочу немного с языком разобраться... Токловая штука, уже по телнету байтики гонаю... :)
( повесил на 12000 порт )
Fusion Player — модуль для CMS PHP-Fusion (demo video: посмотреть)

Не использую пиратского ПО
IP-PBX Asterisk українською. Зроби краще!

«ХО» – мое все.
А ты перевел свой домен на DNSSEC?

Slackware userИзображение

baytuch
Сообщения: 925
Зарегистрирован: Сб мар 14, 2009 00:23
Откуда: пгт. Войтовцы
Контактная информация:

#73 Сообщение baytuch » Пн мар 26, 2012 03:35

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

root@Laptop:~# telnet localhost 12000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
sms_send
send_sms_mode
OK
num +38097******
num
OK
mess My SERVER bot => diagnostic system
mess_send
OK
Последний раз редактировалось baytuch Вт мар 27, 2012 05:49, всего редактировалось 1 раз.
Fusion Player — модуль для CMS PHP-Fusion (demo video: посмотреть)

Не использую пиратского ПО
IP-PBX Asterisk українською. Зроби краще!

«ХО» – мое все.
А ты перевел свой домен на DNSSEC?

Slackware userИзображение

baytuch
Сообщения: 925
Зарегистрирован: Сб мар 14, 2009 00:23
Откуда: пгт. Войтовцы
Контактная информация:

#74 Сообщение baytuch » Вс июн 03, 2012 15:25

Пытаю решить вопрос с компанией "Киевстар". На этот раз я пошел в их офис и "накатал" заяву... А что делать?.. Вон, моя новыя программа требует прямого подключения к серверу ( в целях безопасности, конечно ), а оно самое не возможно...

Ждем...

*на данный момент работаю над возможностью автоматической оплаты на электроэнергию. Существует некий аппаратный комплекс. Работает через службы банка "Приват Банк"... Так что, мне совсем не хочется гостей, как вы понимаете... :)

*Video: http://www.youtube.com/watch?v=GqtdOpychVs ( прошу прощения за качество )
Fusion Player — модуль для CMS PHP-Fusion (demo video: посмотреть)

Не использую пиратского ПО
IP-PBX Asterisk українською. Зроби краще!

«ХО» – мое все.
А ты перевел свой домен на DNSSEC?

Slackware userИзображение

dobs
HO Moderators
Сообщения: 2504
Зарегистрирован: Вс апр 09, 2006 14:42
Откуда: /home/Ukraine/Kiev
Контактная информация:

#75 Сообщение dobs » Вс июн 03, 2012 17:00

Посмотрел под микроскопом видюху но так и не понял что не работает, при заходе на my-server.km.ua выдает что Итс ворк...

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

[dobs@wifi ~]$ traceroute my-server.km.ua
traceroute to my-server.km.ua (94.153.185.142), 30 hops max, 60 byte packets
 1  1gb-gateway (192.168.1.1)  0.264 ms  0.368 ms  0.238 ms
 2  gw4.lancom.kiev.ua (195.66.137.65)  1.020 ms  1.526 ms  4.949 ms
 3  195.66.137.137 (195.66.137.137)  1.114 ms  1.491 ms  5.024 ms
 4  194.9.36.129 (194.9.36.129)  2.007 ms  5.194 ms  1.780 ms
 5  dtel-ix.kyivstar.net (193.25.180.88)  6.519 ms  5.367 ms  5.282 ms
 6  81-23-23-25.ip.kyivstar.net (81.23.23.25)  3.896 ms  3.980 ms  3.523 ms
 7  94-153-185-142-gprs.kyivstar.net (94.153.185.142)  456.120 ms  475.514 ms  489.903 ms

Ответить