LINUX.ORG.RU

Сообщения Wade

 

Детективная история с сервером Debian OpenVpn Postgresql

Форум — Security

Добрый день. Столкнулся с очень странной историей. Имеется сервер debian 6+openvpn+postgresql+apache+php Сервер используется для сбора статистики с информационных терминалов - каждый терминал создает через gprs модем vpn туннель до сервера, и скидывает разную статистику. На этом же сервере есть веб морда для клиентов. В последнее время с сервером начинается странное - через 3 часа 45 минут он перестает отвечать postgresql c ошибкой too many connection. В процессах висит в 3-4 раза больше апачей из-за этого. Но самое интересное - отваливается внутренний интерфейс для openvpn. Т.е на внешнем интерфейсе все ок, а по туннелю не подключиться.

Причем странное расписание - трое суток подряд через каждые 3 часа 45 минут все зависает примерно на 5 минут, а потом на 4 или 5 дней все нормально.

Честно говоря уже и не знаю, что смотреть - в кроне ничего нет,спам вроде не отправляется, по логам апача вроде нет подозрительных запросов.

Что делать? Буду рад любым вариантам)

Wade
()

Заблокировать ком порт

Форум — General

Приветствую. Для того чтобы устройство на ttyACM0 правильно функционировало, необходимо чтобы программа открывала его в монопольном режиме, например program открывает /dev/ttyACM0, тогда команда echo «aaaa» > /dev/ttyACM0 должна закончиться неудачей. Minicom это делает, а у меня не получается. Вот код открытия:

fd = open(device, O_RDWR | O_EXCL );
      if (fd == -1)
      {
       /*
	* Could not open the port.
	*/

	perror(device);
      	//return NULL;
      }
    
    struct flock lock;
    lock . l_type = F_WRLCK;
    lock . l_whence = SEEK_SET;
    lock . l_start = 0;
    lock . l_len = 0;

    if (fcntl (fd, F_SETLK, & lock) < 0) {

      perror(device);
      //return NULL;
    }

    int status;
    
    ioctl(fd, TIOCMGET, &status);
    status &= ~TIOCM_RTS;
    status &= ~TIOCM_DTR;
    status &= ~TIOCM_CTS;
    status &= ~TIOCM_DSR;

    if (ioctl(fd, TIOCMSET, &status))
    {
      perror("ioctl");
      //return 0;
    }

    struct termios options;

    /*
     * Get the current options for the port...
     */

    tcgetattr(fd, &options);

    cfsetispeed(&options, baud_rate);
    cfsetospeed(&options, baud_rate);
    
    options.c_cflag &= ~PARENB;
    options.c_cflag &= CSTOPB;
    options.c_cflag &= ~CSIZE;
    options.c_cflag |= CS8;
    options.c_cflag &= ~CRTSCTS;
    options.c_oflag &= ~OPOST; //raw output
    
    options.c_lflag &= ~(ICANON | ECHO | ISIG);

    /*
     * Enable the receiver and set local mode...
     */

    options.c_cflag |= (CLOCAL | CREAD | baud_rate);
    
    /*
     * Set the timeouts VMIN is the minimum amount of characters to read
     */
    
    //options.c_cc[VMIN] = 0;
    
    /*
     * The amount of time to wait for the amount of data specified by VMIN in tenths of a second
     */
    
    //options.c_cc[VTIME] = 0;

    /*
     * Set the new options for the port...
     */

    tcsetattr(fd, TCSANOW, &options);

Подскажите, что не так. Либо кусок кода.где работает блокировка. Спасибо

Wade
()

Процесс, занимающий файл/устройство

Форум — General

Добрый день. Ubuntu 10.10 У меня существует устройство /dev/ttyACM0 C этим устройством работает программа program, т.е. если сделать lsof /dev/ttyACM0, то выведется именно program В какой то момент устройство перестает работать. Это случается если на него послать команду отличную от текущего протокола. Т.е. если во время работа program из другой консоли отправить echo «aaaa» > /dev/ttyACM0, то устройство перестает работать. Так вопрос в том как отловить процесс, который отсылает какой то ввод на это устройство не по протоколу. В бесконечном цикле lsof не получилось выявить процесс. Какие еще существуют варианты? Либо возможно ли весь ввод на /dev/ttyACM0 логировать где-нибудь? По такому логу я бы смог отловить проблему. Спасибо.

Wade
()

Задать уровень громкости alsamixer

Форум — General

Добрый день.

Стоит debian 5, уровень громкости регулирую через alsamixer Задача задать уровень звука не через графическое представление, а как параметр от 0 до 100 в командной строке. у alsamixer не нашел такого параметра.

Заранее спасибо

Wade
()

RSS подписка на новые темы