The OpenNET Project
 
Поиск (теги):    НОВОСТИ (+) КОНТЕНТ WIKI MAN'ы ФОРУМ twitter

форумы  помощь  поиск  регистрация  майллист  вход  слежка  RSS
Создать новую тему
 - Свернуть нити
Пометить прочитанным
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Архив | Избранное | Мое | Новое | |  
Форум Программирование под UNIX
COM-порт + MySQL + сетевой демон, yurybx, (Разное) 19-Мрт-15, 10:26  [ | | ] [линейный вид] [смотреть все]
Сломай голову в shell, Александр, (Shell скрипты) 25-Мрт-15, 14:52  [ | | ] [линейный вид] [смотреть все]
Qt  (gui) - не приходит(ят) сигнал(ы), fail, (GUI, XWindow, Qt, GTK) 24-Мрт-15, 09:00  [ | | ] [линейный вид] [смотреть все]
Makefile - использовать список имён файлов. Типа: массив., Aick, (Разное) 17-Мрт-15, 20:53  [ | | ] [линейный вид] [смотреть все]
AT-команды для авторизации 3G модема, Modem_3G_AT, (Демоны, Сигналы) 17-Мрт-15, 19:00  [ | | ] [линейный вид] [смотреть все]
Захват данных с камеры, steveg, (C/C++) 16-Мрт-15, 20:25  [ | | ] [линейный вид] [смотреть все]
  • Все портит ваша глупость и непонимание того что кадр не может одновременно проец, Pahanivo, 08:05 , 17-Мрт-15 (1) +1
    > С особенностями камеры, с особенностями потока,
    > или это все библиотека портит?

    Все портит ваша глупость и непонимание того что кадр не может одновременно проецироваться на матрицу, цифроваться, постобрабатываться, компоноваться в поток, передоваться и записываться - все эти операции последовательны! (мож что забыл, дак простите)

    сообщить модератору +1 +/ответить
  • Я думаю, что есть вариант, который вы даже не пытались рассмотреть - время на эк, PavelR, 08:09 , 17-Мрт-15 (2)
    > Здравствуйте!!  У меня такого рода вопрос. На руках камера Evidence, с
    > которой я библиотекой live555 забираю поток rtp over udp. Камера наведена
    > на консоль с текущим временем системы, но время , когда кадр
    > получен библиотекой, отличается на 0.3 секунды от времени с консоли (текущего
    > системного). Естественно, время кадра больше, чем время на кадре.

    Я думаю, что есть вариант, который вы даже не пытались рассмотреть - время на экране ("время с консоли") и "текущее системное" - не одно и то же. Т.е., как вариант, тормозит вывод времени на консоль.

    > С чем бы это могло быть связано? С особенностями камеры, с особенностями потока,
    > или это все библиотека портит?

    Объясните пожалуйста, почему вы интересуетесь вопросом и что собираетесь делать со всем этим дальше.


    В общем случае, рекомендую начать задумываться "как это работает, детально".

    сообщить модератору +/ответить
    • gt оверквотинг удален Проблема в том,что все, что вы оба мне перечислили уже р, steveg, 11:13 , 17-Мрт-15 (3)
      >[оверквотинг удален]
      >> системного). Естественно, время кадра больше, чем время на кадре.
      > Я думаю, что есть вариант, который вы даже не пытались рассмотреть -
      > время на экране ("время с консоли") и "текущее системное" - не
      > одно и то же. Т.е., как вариант, тормозит вывод времени на
      > консоль.
      >> С чем бы это могло быть связано? С особенностями камеры, с особенностями потока,
      >> или это все библиотека портит?
      > Объясните пожалуйста, почему вы интересуетесь вопросом и что собираетесь делать со всем
      > этим дальше.
      > В общем случае, рекомендую начать задумываться "как это работает, детально".

      Проблема в том,что все, что вы оба мне перечислили уже рассматривалось. Rtp over udp рассматривается как поток , наилучший для real-time приложений. Оцифровка, передача, декодирование, задержки в портах и в канале тоже учитываются, но это бред, если задержка 0.3 секунды существует. ну 0.05 еще более менее. для real-time 3 десятых это ахтунг. Время на консоли тормозит - вполне может быть, но иначе я не знаю,как узнать задержку.. может вы подскажете?

      имхо , либо камера не готова работать в real-time и не может выдавать данные оперативно ( а это и значит, что формируется изо на матрице, выполняются все преобр и тд - долго, как справедливо отметил первый отписавшийся), либо библиотека. Вопрос по сути и был в этом. Всем,кто спрашивал о задержках с evidence советовали переходить на rtp over udp, то есть с камерой я уже ничего не могу поделать

      сообщить модератору +/ответить
      • Если подскажете ,как засекать время формирования кадра точно - буду оч благодаре, steveg, 11:16 , 17-Мрт-15 (4)
        Если подскажете ,как засекать время формирования кадра точно - буду оч благодарен. Время в системе синхронизируется ntpd. На камере левое время.
        сообщить модератору +/ответить
      • родной, о каких 0 05 задержки ты говоришь когда это скорость оцифровки одного ка, Pahanivo, 16:07 , 17-Мрт-15 (6)
        > Проблема в том,что все, что вы оба мне перечислили уже рассматривалось. Rtp
        > over udp рассматривается как поток , наилучший для real-time приложений. Оцифровка,
        > передача, декодирование, задержки в портах и в канале тоже учитываются, но
        > это бред, если задержка 0.3 секунды существует. ну 0.05 еще более
        > менее. для real-time 3 десятых это ахтунг. Время на консоли тормозит
        > - вполне может быть, но иначе я не знаю,как узнать задержку..
        > может вы подскажете?

        родной, о каких 0.05 задержки ты говоришь когда это скорость оцифровки одного кадра только на матрице ...
        переходи на VHS и аналоговые камеры )) там задержки минимальны ))

        > имхо , либо камера не готова работать в real-time и не может
        > выдавать данные оперативно ( а это и значит, что формируется изо
        > на матрице, выполняются все преобр и тд - долго, как справедливо
        > отметил первый отписавшийся), либо библиотека. Вопрос по сути и был в
        > этом. Всем,кто спрашивал о задержках с evidence советовали переходить на rtp
        > over udp, то есть с камерой я уже ничего не могу
        > поделать

        реал тайм это как бы не система где все происходит мгновенно - скорость света с которой проходит пакет по кабелю как бы никто не отменял, а она таки конечная величина, те задержку дает. в реал тайм системе тебе гарантируют некоторую максимальную величину времени реакции системы на запрос, боюсь что ты просто неправильно понимаешь термин real-time как таковой.

        сообщить модератору +/ответить
    • Или предпоследнее сообщение вот тут - http ffmpeg gusari org viewtopic php f , steveg, 13:41 , 17-Мрт-15 (5)
      Или предпоследнее сообщение вот тут -> http://ffmpeg.gusari.org/viewtopic.php?f=12&t=762

      Вы целиком одобряете?

      сообщить модератору +/ответить
При запуске скрипта Expect через Web, gpfspam, (Shell скрипты) 28-Фев-15, 05:28  [ | | ] [линейный вид] [смотреть все]
  • gt оверквотинг удален Ну в тексте явно не хватает кода ПХП , pavlinux, 03:25 , 02-Мрт-15 (1)
    >[оверквотинг удален]
    > expect "Login:" {send "root\r";}
    > expect "Password:" {send "root\r"}
    > expect "# " {send "exit\r"}
    > expect eof
    > Первый способ (запуск через консоль).
    > Все прекрасно работает, на железку попадаю.
    > Второй способ (через WEB)
    > Необходимо вывести инфу на web страничку. Использую PHP. И в итоге сталкиваюсь
    > с тем, что после ввода Login:root получаю Press any key to
    > continue (Q to quit).

    Ну в тексте явно не хватает кода ПХП

    сообщить модератору +/ответить
    • usr bin expect -fset host lindex argv 0 set login lindex argv 0 set pass , gpfspam, 10:14 , 02-Мрт-15 (2)
      >>[оверквотинг удален]
      > Ну в тексте явно не хватает кода ПХП

      #!/usr/bin/expect -f
      set host [lindex $argv 0]
      set login [lindex $argv 0]
      set pass [lindex $argv 0]
      log_user 1
      spawn telnet $host
      expect «Login:» {send «$login\r»;}
      expect «Password:» {send «$pass\r»}
      expect «# » {send «exit\r»}
      expect eof

      <?php
      function dev($a,$b,$c)
      {
      exec ('./script '.$a.' '.$b.' '.$c,$vihlop);
      return $vihlop;
      }
      print_r (dev('192.168.1.15','root','root'));
      ?>

      сообщить модератору +/ответить
      • похоже железка у тебя без пароля, пароль на ней поставь либо скрипт с expect , DiJey, 12:29 , 03-Мрт-15 (3)
        похоже железка у тебя без пароля, пароль на ней поставь ;) либо скрипт с expect дописывай

        сообщить модератору +/ответить
        • Железка по Web запаролина Не совсем понял, что ты имел ввиду под скрипт с expec, gpfspam, 14:32 , 03-Мрт-15 (4)
          > похоже железка у тебя без пароля, пароль на ней поставь ;) либо
          > скрипт с expect дописывай

          Железка по Web запаролина.
          Не совсем понял, что ты имел ввиду под "скрипт с expect дописывай"? )

          сообщить модератору +/ответить
          • Сообщение Press any key to continue Q to quit появляется если при подключении , DiJey, 15:25 , 03-Мрт-15 (5)
            >> похоже железка у тебя без пароля, пароль на ней поставь ;) либо
            >> скрипт с expect дописывай
            > Железка по Web запаролина.
            > Не совсем понял, что ты имел ввиду под "скрипт с expect дописывай"?
            > )

            Сообщение:
            Press any key to continue (Q to quit).
            появляется если при подключении по телнету нет пароля тоесть вместо
            login
            password
            появляется такое сообщение
            соответственно что бы отрабатывали твои скрипты, нужно либо на железке установить
            что бы при подключении по телнету она запрашивала логин пароль
            либо доработать скрипт что бы он обрабатывал строку
            Press any key to continue (Q to quit).

            Пример скрипта expect использующего условия ниже


            #!/usr/bin/expect

            # Скрипт копирует файл или папку на хосты из списка. Параметры передаются скрипту в коммандной строке.
            # Первым парамером передаем скрипту адрес файла со списков хостов, логинами и паролями формата:
            # hostname1 username1 passwprd1
            # hostname1 username1 passwprd1
            # Вторым парамтром передаем адрес файла или папки на локальном хосте, который нужно скопировать на другие хосты
            # Третьим параметром передаем адрес папки, куда скопировать файлы на удаленных хостах

            set hostname_file [lindex $argv 0]
            set filename [lindex $argv 1]
            set path [lindex $argv 2]

            set hfile [open "$hostname_file" r]                ;# Открываем файл с паролями
            foreach hline [split [read $hfile] "\n"] {        ;# Разбираем файл с паролями на строки (по символу новой строки)
                set hostname [lindex $hline 0]                ;# Получаем  первое слово в строке - имя хоста
                set username [lindex $hline 1]                ;# Получаем  второе слово в строке - имя пользователя
                set password [lindex $hline 2]                ;# Получаем  третье слово в строке - пароль пользователя
                if { [string length $hostname] > 0 && [string length $username] > 0 } {        ;# Проверяем, что переменные с именем хоста и именем пользователя не пустые
                log_user 0
                spawn scp -rv $filename $username@$hostname:$path
                while 1 {
                    expect {
                        "*continue connecting (yes/no)?*"   {send "yes\r"}
                        "*?assword:*" {send "$password\r"}
                        "debug1: Exit status 0"     {send_user "Successfully copy file(s) to server $hostname\n";break}
                        "Permission denied*"    {send_user "Permission denied for server $hostname\n"; break}
                        "*: Not a directory"    {send_user "On server $hostname $path is not a directory!\n"; break}
                        timeout     {send_user "Timeout expired for server $hostname\n"; break}
                        }
                    }
                log_user 1
                }
            }

            сообщить модератору +/ответить
            • gt оверквотинг удален Пароль для telnet установлен Еще раз обрисую ситуацию , gpfspam, 23:05 , 03-Мрт-15 (6)
              >[оверквотинг удален]
              >> Не совсем понял, что ты имел ввиду под "скрипт с expect дописывай"?
              >> )
              > Сообщение:
              > Press any key to continue (Q to quit).
              > появляется если при подключении по телнету нет пароля тоесть вместо
              > login
              > password
              > появляется такое сообщение
              > соответственно что бы отрабатывали твои скрипты, нужно либо на железке установить
              > что бы при подключении по телнету она запрашивала логин пароль

              Пароль для telnet установлен. Еще раз обрисую ситуацию. Запускаю скрипт в консоли из под root, получаю выхлоп такой:

              spawn telnet 192.168.1.15
              Trying 192.168.1.15...
              Connected to 192.168.1.15.
              Escape character is '^]'.

              Login to ZXSS-I524  VERSION V1.00.0Z.00.30
              Login:root
              Password:

                       ZXSS-I524  VERSION V1.00.0Z.00.30
              Copyright(c) 2000-2006,  ZTE Corporation. All rights reserved.
              --------------------------------------------------------------

              # exit
              Connection closed by foreign host.


              Теперь пытаюсь запустить скрипт из WEB, соответственно из под apache, пользователь www-data, получаю на страничку такой вот выхлоп:

              spawn telnet 192.168.1.15
              Trying 192.168.1.15...
              Connected to 192.168.1.15.
              Escape character is '^]'.

              Login to ZXSS-I524 VERSION V1.00.0Z.00.30
              Login:root Press any key to continue (Q to quit)

              У меня подозрения, что скрипт реагирует на пользователя запускающий его. Но права я разрешил по максимум 0777, да и скрипт бы не запускался если беда была с правами. Не могу понять где собака зарыта. А обрабатывать каждый раз это сообщение ну совсем не охота ))

              сообщить модератору +/ответить
              • stdin у апача в другом месте А накой ваще expect если есть ПЫХа code php , pavlinux, 02:39 , 04-Мрт-15 (7)
                > Не могу понять где собака зарыта.

                stdin у апача в другом месте.


                А накой ваще expect если есть ПЫХа?  


                <?php
                /**
                * Telnet class
                *
                * Used to execute remote commands via telnet connection
                * Usess sockets functions and fgetc() to process result
                *
                * All methods throw Exceptions on error
                *
                * Written by Dalibor Andzakovic <dali@swerve.co.nz>
                * Based on the code originally written by Marc Ennaji and extended by
                * Matthias Blaser <mb@adfinis.ch>
                *
                * Extended by Christian Hammers <chammers@netcologne.de>
                * Modified by Frederik Sauer <fsa@dwarf.dk>
                *
                */
                class Telnet {
                    private $host;
                    private $port;
                    private $timeout;
                    private $stream_timeout_sec;
                    private $stream_timeout_usec;
                    private $socket  = NULL;
                    private $buffer = NULL;
                    private $prompt;
                    private $errno;
                    private $errstr;
                    private $strip_prompt = TRUE;
                    private $NULL;
                    private $DC1;
                    private $WILL;
                    private $WONT;
                    private $DO;
                    private $DONT;
                    private $IAC;
                    private $global_buffer = '';
                    const TELNET_ERROR = FALSE;
                    const TELNET_OK = TRUE;
                    /**
                     * Constructor. Initialises host, port and timeout parameters
                     * defaults to localhost port 23 (standard telnet port)
                     *
                     * @param string $host Host name or IP addres
                     * @param int $port TCP port number
                     * @param int $timeout Connection timeout in seconds
                     * @param string $prompt Telnet prompt string
                     * @param float $streamTimeout Stream timeout in decimal seconds
                     * @return void
                     */
                    public function __construct($host = '127.0.0.1', $port = '23', $timeout = 10, $prompt = '$', $stream_timeout = 1) {
                        $this->host = $host;
                        $this->port = $port;
                        $this->timeout = $timeout;
                        $this->setPrompt($prompt);
                        $this->setStreamTimeout($stream_timeout);
                        // set some telnet special characters
                        $this->NULL = chr(0);
                        $this->DC1 = chr(17);
                        $this->WILL = chr(251);
                        $this->WONT = chr(252);
                        $this->DO = chr(253);
                        $this->DONT = chr(254);
                        $this->IAC = chr(255);
                        $this->connect();
                    }
                    /**
                     * Destructor. Cleans up socket connection and command buffer
                     *
                     * @return void
                     */
                    public function __destruct() {
                        // clean up resources
                        $this->disconnect();
                        $this->buffer = NULL;
                        $this->global_buffer = NULL;
                    }
                    /**
                     * Attempts connection to remote host. Returns TRUE if successful.
                     *
                     * @return boolean
                     */
                    public function connect() {
                        // check if we need to convert host to IP
                        if (!preg_match('/([0-9]{1,3}\\.){3,3}[0-9]{1,3}/', $this->host)) {
                            $ip = gethostbyname($this->host);
                            if ($this->host == $ip) {
                                throw new Exception("Cannot resolve $this->host");
                            } else {
                                $this->host = $ip;
                            }
                        }
                        // attempt connection - suppress warnings
                        $this->socket = @fsockopen($this->host, $this->port, $this->errno, $this->errstr, $this->timeout);
                        if (!$this->socket) {
                            throw new Exception("Cannot connect to $this->host on port $this->port");
                        }
                        
                        if (!empty($this->prompt)) {
                            $this->waitPrompt();
                        }
                        return self::TELNET_OK;
                    }
                    /**
                     * Closes IP socket
                     *
                     * @return boolean
                     */
                    public function disconnect() {
                        if ($this->socket) {
                            if (! fclose($this->socket)) {
                                throw new Exception("Error while closing telnet socket");
                            }
                            $this->socket = NULL;
                        }
                        return self::TELNET_OK;
                    }
                    /**
                     * Executes command and returns a string with result.
                     * This method is a wrapper for lower level private methods
                     *
                     * @param string $command Command to execute
                     * @param boolean $add_newline Default TRUE, adds newline to the command
                     * @return string Command result
                     */
                    public function exec($command, $add_newline = TRUE) {
                        $this->write($command, $add_newline);
                        $this->waitPrompt();
                        return $this->getBuffer();
                    }
                    /**
                     * Attempts login to remote host.
                     * This method is a wrapper for lower level private methods and should be
                     * modified to reflect telnet implementation details like login/password
                     * and line prompts. Defaults to standard unix non-root prompts
                     *
                     * @param string $username Username
                     * @param string $password Password
                     * @return boolean
                     */
                    public function login($username, $password) {
                        try {
                            $this->setPrompt('login:');
                            $this->waitPrompt();
                            $this->write($username);
                            $this->setPrompt('Password:');
                            $this->waitPrompt();
                            $this->write($password);
                            $this->setPrompt();
                            $this->waitPrompt();
                        } catch (Exception $e) {
                            throw new Exception("Login failed.");
                        }
                        return self::TELNET_OK;
                    }
                    /**
                     * Sets the string of characters to respond to.
                     * This should be set to the last character of the command line prompt
                     *
                     * @param string $str String to respond to
                     * @return boolean
                     */
                    public function setPrompt($str = '$') {
                        return $this->setRegexPrompt(preg_quote($str, '/'));
                    }
                    
                    /**
                     * Sets a regex string to respond to.
                     * This should be set to the last line of the command line prompt.
                     *
                     * @param string $str Regex string to respond to
                     * @return boolean
                     */
                    public function setRegexPrompt($str = '\$') {
                        $this->prompt = $str;
                        return self::TELNET_OK;
                    }
                    
                    /**
                     * Sets the stream timeout.
                     *
                     * @param float $timeout
                     * @return void
                     */
                    public function setStreamTimeout($timeout) {
                        $this->stream_timeout_usec = (int)(fmod($timeout, 1) * 1000000);
                        $this->stream_timeout_sec = (int)$timeout;
                    }
                    
                    /**
                     * Set if the buffer should be stripped from the buffer after reading.
                     *
                     * @param $strip boolean if the prompt should be stripped.
                     * @return void
                     */
                    public function stripPromptFromBuffer($strip) {
                        $this->strip_prompt = $strip;
                    } // function stripPromptFromBuffer
                    /**
                     * Gets character from the socket
                     *
                     * @return void
                     */
                    protected function getc() {
                        stream_set_timeout($this->socket, $this->stream_timeout_sec, $this->stream_timeout_usec);
                        $c = fgetc($this->socket);
                        $this->global_buffer .= $c;
                        return $c;
                    }
                    /**
                     * Clears internal command buffer
                     *
                     * @return void
                     */
                    public function clearBuffer() {
                        $this->buffer = '';
                    }
                    /**
                     * Reads characters from the socket and adds them to command buffer.
                     * Handles telnet control characters. Stops when prompt is ecountered.
                     *
                     * @param string $prompt
                     * @return boolean
                     */
                    protected function readTo($prompt) {
                        if (!$this->socket) {
                            throw new Exception("Telnet connection closed");
                        }
                        // clear the buffer
                        $this->clearBuffer();
                        $until_t = time() + $this->timeout;
                        do {
                            // time's up (loop can be exited at end or through continue!)
                            if (time() > $until_t) {
                                throw new Exception("Couldn't find the requested : '$prompt' within {$this->timeout} seconds");
                            }
                            $c = $this->getc();
                            if ($c === FALSE) {
                                if (empty($prompt)) {
                                    return self::TELNET_OK;
                                }
                                throw new Exception("Couldn't find the requested : '" . $prompt . "', it was not in the data returned from server: " . $this->buffer);
                            }
                            // Interpreted As Command
                            if ($c == $this->IAC) {
                                if ($this->negotiateTelnetOptions()) {
                                    continue;
                                }
                            }
                            // append current char to global buffer
                            $this->buffer .= $c;
                            // we've encountered the prompt. Break out of the loop
                            if (!empty($prompt) && preg_match("/{$prompt}$/", $this->buffer)) {
                                return self::TELNET_OK;
                            }
                        } while ($c != $this->NULL || $c != $this->DC1);
                    }
                    /**
                     * Write command to a socket
                     *
                     * @param string $buffer Stuff to write to socket
                     * @param boolean $add_newline Default TRUE, adds newline to the command
                     * @return boolean
                     */
                    protected function write($buffer, $add_newline = TRUE) {
                        if (!$this->socket) {
                            throw new Exception("Telnet connection closed");
                        }
                        // clear buffer from last command
                        $this->clearBuffer();
                        if ($add_newline == TRUE) {
                            $buffer .= "\n";
                        }
                        $this->global_buffer .= $buffer;
                        if (!fwrite($this->socket, $buffer) < 0) {
                            throw new Exception("Error writing to socket");
                        }
                        return self::TELNET_OK;
                    }
                    /**
                     * Returns the content of the command buffer
                     *
                     * @return string Content of the command buffer
                     */
                    protected function getBuffer() {
                        // Remove all carriage returns from line breaks
                        $buf =  preg_replace('/\r\n|\r/', "\n", $this->buffer);
                        // Cut last line from buffer (almost always prompt)
                        if ($this->strip_prompt) {
                            $buf = explode("\n", $buf);
                            unset($buf[count($buf) - 1]);
                            $buf = implode("\n", $buf);
                        }
                        return trim($buf);
                    }
                    /**
                     * Returns the content of the global command buffer
                     *
                     * @return string Content of the global command buffer
                     */
                    public function getGlobalBuffer() {
                        return $this->global_buffer;
                    }
                    /**
                     * Telnet control character magic
                     *
                     * @param string $command Character to check
                     * @return boolean
                     */
                    protected function negotiateTelnetOptions() {
                        $c = $this->getc();
                        if ($c != $this->IAC) {
                            if (($c == $this->DO) || ($c == $this->DONT)) {
                                $opt = $this->getc();
                                fwrite($this->socket, $this->IAC . $this->WONT . $opt);
                            } else if (($c == $this->WILL) || ($c == $this->WONT)) {
                                $opt = $this->getc();
                                fwrite($this->socket, $this->IAC . $this->DONT . $opt);
                            } else {
                                throw new Exception('Error: unknown control character ' . ord($c));
                            }
                        } else {
                            throw new Exception('Error: Something Wicked Happened');
                        }
                        return self::TELNET_OK;
                    }
                    /**
                     * Reads socket until prompt is encountered
                     */
                    protected function waitPrompt() {
                        return $this->readTo($this->prompt);
                    }
                }

                сообщить модератору +/ответить
              • Пользователь тут не причем у expect нет такого условия вот он и затыкается, по с, DiJey, 10:52 , 04-Мрт-15 (8)
                >[оверквотинг удален]
                > spawn telnet 192.168.1.15
                > Trying 192.168.1.15...
                > Connected to 192.168.1.15.
                > Escape character is '^]'.
                > Login to ZXSS-I524 VERSION V1.00.0Z.00.30
                > Login:root Press any key to continue (Q to quit)
                > У меня подозрения, что скрипт реагирует на пользователя запускающий его. Но права

                Пользователь тут не причем у expect нет такого условия вот он и затыкается, по скольку не знает что дальше делать.

                > я разрешил по максимум 0777, да и скрипт бы не запускался
                > если беда была с правами. Не могу понять где собака зарыта.
                > А обрабатывать каждый раз это сообщение ну совсем не охота ))

                Что мешает в expect вставить еще одну строчку?
                Я же даже пример привел, предложили всё на php написать, я понимаю лень, но нельзя же быть настолько ленивым :Р .


                сообщить модератору +/ответить
Как заменить пробелы на один пробел, Dark Smoke, (Shell скрипты) 25-Фев-15, 18:03  [ | | ] [линейный вид] [смотреть все]
tcpdump для sip, Fazatron, (Отладка и профилирование) 16-Фев-15, 15:54  [ | | ] [линейный вид] [смотреть все]
использование библиотеки libssh, Alex, (C/C++) 16-Фев-15, 13:39  [ | | ] [линейный вид] [смотреть все]
Редактирование CSV, salvani, (Shell скрипты) 12-Фев-15, 16:56  [ | | ] [линейный вид] [смотреть все]
подключение библиоте к С, Alex, (C/C++) 10-Фев-15, 13:16  [ | | ] [линейный вид] [смотреть все]
OpenCV - утилита для автовращения картинки на +/-15 градусов, xintrea, (Библиотеки, функции) 03-Фев-15, 16:56  [ | | ] [линейный вид] [смотреть все]
  • http www imagemagick org api shear php DeskewImage Командная строка не поме, Andrey Mitrofanov, 17:33 , 03-Фев-15 (1)
    > Может быть, есть другие решения?

    http://www.imagemagick.org/api/shear.php#DeskewImage

    +++"Командная строка не поместилась на полях, оставляю, как упражнение читателю."

    сообщить модератору +/ответить
  • ScanTailor пробовали , Сибиряк, 17:35 , 11-Фев-15 (2)
    > Есть задача: имеется куча ~350 отсканированных листов в виде PNG-файлов, причем отсканированных
    > небрежно: каждый лист повернут на случайный угол в +/-15 градусов.
    > Исходника для пересканирования нет. Исходник - техническая документация, то есть текст
    > на белом фоне, Ч/Б рисунки, диаграммы, таблицы. Видны края листа (не
    > везде).
    > Для дальнейшей обработки и печати нужно привести эти файлы в более человеческий
    > вид. Одна из задачь - повернуть изображение так, чтобы "выровнять горизонт".
    > Повернуть я могу через ImageMagic (утилита convert). Весь вопрос - на
    > какой угол поворачивать.
    > Может быть, есть другие решения?

    ScanTailor пробовали?

    сообщить модератору +/ответить
Посоветуйте книгу по Python, Гриша, (Python) 08-Мрт-12, 12:05  [ | | ] [линейный вид] [смотреть все]
dhclient dhcp client получение нового адреса удаляется маршрут, tnega, (Shell скрипты) 05-Фев-15, 07:03  [ | | ] [линейный вид] [смотреть все]
  • У dhclient как бэ есть exit-hooks - скрипт который отрабатывает после того как d, шут, 16:18 , 05-Фев-15 (1)
    > помогите советом, как оставить правило работающим?

    У dhclient как бэ есть exit-hooks - скрипт который отрабатывает после того как dhclient сделал своё дело
    кури маны твоего дистра где этот скрипт лежит и дописывай необходимую логику чтоб она добавляла нужные маршруты

    сообщить модератору +/ответить
    • спасибо за ответ да, я к этому тоже уже пришел но вопрос другой, он ведь будет в, tnega, 16:21 , 05-Фев-15 (2)
      >> помогите советом, как оставить правило работающим?
      > У dhclient как бэ есть exit-hooks - скрипт который отрабатывает после того
      > как dhclient сделал своё дело
      > кури маны твоего дистра где этот скрипт лежит и дописывай необходимую логику
      > чтоб она добавляла нужные маршруты

      спасибо за ответ!
      да, я к этому тоже уже пришел!
      но вопрос другой, он ведь будет выполнять мои команды при поднятии любого интерфейса? не только которого мне нужен.

      сообщить модератору +/ответить
      • читаем маны и смотрим примерыу dhclient-script есть кучка переменных, включая ин, шут, 20:16 , 05-Фев-15 (3)
        >>> помогите советом, как оставить правило работающим?
        >> У dhclient как бэ есть exit-hooks - скрипт который отрабатывает после того
        >> как dhclient сделал своё дело
        >> кури маны твоего дистра где этот скрипт лежит и дописывай необходимую логику
        >> чтоб она добавляла нужные маршруты
        > спасибо за ответ!
        > да, я к этому тоже уже пришел!
        > но вопрос другой, он ведь будет выполнять мои команды при поднятии любого
        > интерфейса? не только которого мне нужен.

        читаем маны и смотрим примеры
        у dhclient-script есть кучка переменных, включая интерфейс
        если не умеем запилить в шелл скрипте пару проверок интересующих переменных - меняем профессию на грузчика или дворника

        сообщить модератору +/ответить
        • gt оверквотинг удален Вас понял - буду читать маны - , tnega, 20:17 , 05-Фев-15 (4)
          >[оверквотинг удален]
          >>> кури маны твоего дистра где этот скрипт лежит и дописывай необходимую логику
          >>> чтоб она добавляла нужные маршруты
          >> спасибо за ответ!
          >> да, я к этому тоже уже пришел!
          >> но вопрос другой, он ведь будет выполнять мои команды при поднятии любого
          >> интерфейса? не только которого мне нужен.
          > читаем маны и смотрим примеры
          > у dhclient-script есть кучка переменных, включая интерфейс
          > если не умеем запилить в шелл скрипте пару проверок интересующих переменных -
          > меняем профессию на грузчика или дворника

          Вас понял :-) буду читать маны :-)

          сообщить модератору +/ответить
ip route ifconfig alias, tnega, (Shell скрипты) 03-Фев-15, 09:54  [ | | ] [линейный вид] [смотреть все]
  • великолепно Что мешает всё также и далее пользоваться обычным неуправляемым комм, PavelR, 11:32 , 03-Фев-15 (1)
    > Приветствую Всех!
    > Имеем шлюз!

    великолепно.

    > Решили организовать данную технологию на шлюзе:

    Что мешает всё также и далее пользоваться обычным неуправляемым коммутатором?

    > Хотим подсадить пользователя на один из каналов:

    1) У вас _один_ канал. Вы ошибаетесь, думая, что у вас "несколько каналов".
    2) На самом деле у вас проблемы с пониманием, чего же именно вы хотите. Вы хотите не этого. Канал-то один.

    > в чем может быть причина?

    1) В том, что вы делаете непонятно что, и не понимаете, что именно вы делаете.
    2) Не пользуетесь tcpdump с ключом -e.

    > Вывод команды ip route

    ... нам абсолютно бесполезен.

    > кстати, при traceroute через алиас интерфейсы я вижу первым шлюзом в цепочке
    > шлюз eth0

    Всё так и должно быть :-)

    Еще раз повторю вопрос: что мешает пользоваться обычным коммутатором?

    сообщить модератору +/ответить
    • хотелось бы шейпить трафик на интерфейсах, ограничивать скорость я понимаю, что , tnega, 11:39 , 03-Фев-15 (2)
      хотелось бы шейпить трафик на интерфейсах, ограничивать скорость.
      я понимаю, что канал один, но ип адреса выдаются ведь разные.

      хочется иметь контроль пользователей на программном уровне, а не только на физическом, отключая из коммутатора абонентов.

      просто видим для себя большой плюс в том, что выдаются динамические белые ип адреса.

      проблему решил :-) спасибо за отклик!
      я забыл включить маскардинг на интерфейсах :-)

      сообщить модератору +/ответить
      • 1 2 Как-то не заметно, что _клиентам_ выдаются _белые_ адреса , PavelR, 12:07 , 03-Фев-15 (3)
        > просто видим для себя большой плюс в том, что выдаются динамические белые
        > ип адреса.

        (1)

        > я забыл включить маскардинг на интерфейсах :-)

        (2)


        Как-то не заметно, что _клиентам_ выдаются _белые_ адреса. )

        сообщить модератору +/ответить
        • делаю весь проброс портов и вуаля - клиент получает серый ип конечно, но порты , tnega, 12:18 , 03-Фев-15 (4)
          >> просто видим для себя большой плюс в том, что выдаются динамические белые
          >> ип адреса.
          > (1)
          >> я забыл включить маскардинг на интерфейсах :-)
          > (2)
          > Как-то не заметно, что _клиентам_ выдаются _белые_ адреса. )

          делаю весь проброс портов и вуаля :-)
          клиент получает серый ип конечно, но порты при пробрасываются все :-)

          пока только так умеем. может быть Вы можете показать альтернативный способ?

          сообщить модератору +/ответить
          • не совсем применимо к вашей схеме, но думаю можно допилить Ключевые моменты 1 П, PavelR, 17:44 , 03-Фев-15 (5)
            >>> просто видим для себя большой плюс в том, что выдаются динамические белые
            >>> ип адреса.
            >> (1)
            >>> я забыл включить маскардинг на интерфейсах :-)
            >> (2)
            >> Как-то не заметно, что _клиентам_ выдаются _белые_ адреса. )
            > делаю весь проброс портов и вуаля :-)
            > клиент получает серый ип конечно, но порты при пробрасываются все :-)
            > пока только так умеем. может быть Вы можете показать альтернативный способ?

            не совсем применимо к вашей схеме, но думаю можно допилить.
            Ключевые моменты:

            1) Публикация мак-адреса белого айпи на внешнем интерфейсе
            /usr/sbin/arp -i eth0 -Ds $IP eth0 pub

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

            ( Команда удаления: /usr/sbin/arp -i br0 -d $IP pub )

            Следствие: провайдер видит айпи в таблице мак адресов, шлет на него трафик.
            Таким образом трафик к $IP попадает на ваш сетевой интерфейс маршрутизатора.

            2) Прописываем на роутере маршрут к белому айпи.

            Тут нюансы.

            ip route add ${addr} dev ${vif} src ${main_ip}

            Это работает если интерфейс точка-точка (на виртуалках).

            На физической сети как работает - не знаю, может не захотеть делать ARP-запрос.

            Можно сделать маршрут на серый айпи, а белый на хосте прописать алиасом (или наоброт) (на винде это элементарно).

            ip route add $WHITEIP via $GREYIP

            На линуксах еще более элементарно делается белый айпи и серый адрес роутера (если мне не изменяет память ;-)

            Возможно, сработает принудительное добавление мак-адреса в таблицу на роутере.

            Обычно кучу сложностей на этом пути можно решить включением proxy_arp на интерфейсах.
            Но мне кажется, что где-то оно работало и без него. Хотя, возможно в каком-то случае клиенты не могли друг друга видеть, но мне этого особо было и не нужно.

            В общем суть схемы - настроить маршрутизацию и сделать либо proxy_arp либо вручную расставить нужные значения в arp-таблицы (свою и вышестоящего роутера).

            По таким схемам я пробрасывал штучные реальные IP-адреса на сервера во внутренней сети, таким же образом без использования бриджей выдаются штучные реальные IP на виртуалки.

            tcpdump вам в помощь.

            сообщить модератору +/ответить
общий лимит дескрипторов сокетов и файлов, jet8001, (Сеть, сокеты) 03-Фев-15, 07:27  [ | | ] [линейный вид] [смотреть все]
  • gt оверквотинг удален Вроде когда-то подобный лимит во фре в ядре упоминался, , fantom, 10:30 , 03-Фев-15 (1)
    >[оверквотинг удален]
    > если открыть 32768 сокетов, то файлов можно открыть после этого 0
    > (дальше ошибка - EMFILE /* Too many open files */)
    > хотя сокеты можно продолжать открывтаь до лимита в 200к
    > само собой если в это время смотреть в kern.openfiles, то до kern.maxfilesperproc:
    > 200000 там очень далеко
    > тоесть вот этот лимит непонятный в 32768 он общий на файлы и
    > сокеты открытые, но при заполнениии сокеты его игнорируют, а файлы нет
    > не понятно почему он вообще есть и почему он отличается от того,
    > что висит в sysctl
    > есть мысли как его можно увеличить?

    Вроде когда-то подобный лимит во фре в ядре упоминался, но полной уверенности нет, покопайтесь в параметрах ядра и пересоберите...

    сообщить модератору +/ответить
    • gt оверквотинг удален неужели 10ка по умолчанию не может даже 35к файлов на пр, jet8001, 14:51 , 03-Фев-15 (2)
      >[оверквотинг удален]
      >> хотя сокеты можно продолжать открывтаь до лимита в 200к
      >> само собой если в это время смотреть в kern.openfiles, то до kern.maxfilesperproc:
      >> 200000 там очень далеко
      >> тоесть вот этот лимит непонятный в 32768 он общий на файлы и
      >> сокеты открытые, но при заполнениии сокеты его игнорируют, а файлы нет
      >> не понятно почему он вообще есть и почему он отличается от того,
      >> что висит в sysctl
      >> есть мысли как его можно увеличить?
      > Вроде когда-то подобный лимит во фре в ядре упоминался, но полной уверенности
      > нет, покопайтесь в параметрах ядра и пересоберите...

      неужели 10ка по умолчанию не может даже 35к файлов на процесс открыть без пересбора ядра и танцев с бубном?
      зачем тогда kern.maxfilesperproc нужен, если лимиты где-то ещё?


      сообщить модератору +/ответить
Поймать и определить сигнал, datswd, (C/C++) 01-Фев-15, 18:04  [ | | ] [линейный вид] [смотреть все]
  • strace не поможет или core dump , Alex_S, 03:06 , 02-Фев-15 (1)
    > Добрый здравствуйте.
    > Так вот из первого вопроса проистекает главный вопрос.
    > Каким образом можно посмотреть каким именно сигналом происходит это закрытие.

    strace не поможет ?
      или core dump ?

    сообщить модератору +/ответить
    • Спасибо Этот вопрос задавался для того чтобы решить проблему с файлами, которые , NoiseBringer, 09:08 , 02-Фев-15 (2)
      >> Добрый здравствуйте.
      >> Так вот из первого вопроса проистекает главный вопрос.
      >> Каким образом можно посмотреть каким именно сигналом происходит это закрытие.
      >  strace не поможет ?
      >   или core dump ?

      Спасибо!

      Этот вопрос задавался для того чтобы решить проблему с файлами, которые не были до конца загружены из-за прерывания соединения.
      Один из вариантов, это в приложении, которое записывает файл, ловить сигнал о досрочном завершении и, не отходя от кассы, удалять незавершенный файл.
      Красиво. Но для этого нужно разбираться с strace и прочими утилитами.

      В то же время есть вариант номер два. Раз в час запускать приложение, которое удаляет все файлы из нужной директории, у которых время последнего изменения больше десяти минут.
      Не так красиво, но зато просто до упора :)

      сообщить модератору +/ответить
    • Ай спасибо Всё оказалось проще чем я думал ps -ax 124 grep приложение С помо, NoiseBringer, 09:32 , 02-Фев-15 (3)
      >> Добрый здравствуйте.
      >> Так вот из первого вопроса проистекает главный вопрос.
      >> Каким образом можно посмотреть каким именно сигналом происходит это закрытие.
      >  strace не поможет ?
      >   или core dump ?

      Ай спасибо!
      Всё оказалось проще чем я думал.

      ps -ax | grep {приложение}

      С помощью этой команды вясняем PID нашего приложения

      strace -p PID

      С помощью этой мониторим чем оно занимается.

      Возможно понадобится изменить параметр kernel.yama.ptrace_scope в файле /etc/sysctl.d/10-ptrace.conf с 1 на 0;

      Оказалось что Apache в этом случае посылает SIGKILL.

      сообщить модератору +/ответить
Вывод чисел в столбик с помощью printf на BASH, Astylos, (Shell скрипты) 31-Янв-15, 13:14  [ | | ] [линейный вид] [смотреть все]
Строковые типы в C, noisebringer, (C/C++) 24-Июн-14, 16:28  [ | | ] [линейный вид] [смотреть все]
Логика, RedD, (C/C++) 26-Окт-14, 21:04  [ | | ] [линейный вид] [смотреть все]
Использование переменных в регулярных выражениях, Yarolin, (Shell скрипты) 16-Янв-15, 20:26  [ | | ] [линейный вид] [смотреть все]
  • Информация к размышлению isd 4 echo isd isd isd isdisd 4 echo isd i, fantom, 11:40 , 17-Янв-15 (4) –1
    > Доброго времени суток))) пожалуйста, посоветуйте)))вот у меня есть переменная VAR, значение
    > которой - строка "44;55;44", к примеру) у меня есть файл, в
    > котором мне нужно посчитать количество строк, три первых поля которых совпадают
    > с этой переменной, а четвёртое поле не равно 0 (разделитель полей
    > ";"). как мне с помощью grep это сделать-то? что-то типа grep
    > -c '$i;[^0]$' file . Но это, естественно, не работает... Заранее спасибо))

    Информация к размышлению:

    isd=4; echo 'isd = $isd'
    isd = $isd

    isd=4; echo "isd = $isd"
    isd = 4              

    и почему бы не пойти от противного
    ^$i;[1-9]

    ??

    сообщить модератору –1 +/ответить
Работа с полями в окнах XWindow, andymal, (GUI, XWindow, Qt, GTK) 15-Янв-15, 22:39  [ | | ] [линейный вид] [смотреть все]
Автоматизация процесса выгрузки операторами связи zapret@info.r, Alexadm, (Shell скрипты) 15-Июл-13, 17:29  [ | | ] [линейный вид] [смотреть все]
Android 4.4: запись на SD карту сторонними приложениями, xintrea, (Портирование) 17-Янв-15, 13:25  [ | | ] [линейный вид] [смотреть все]
  • Где это ты узнал Причем тут программирование Когда пишешь программу в манифесте, pavlinux, 04:23 , 20-Янв-15 (1)
    > Недавно узнал, что Гоголь заблокировал для сторонних приложений возможность записи на внешнюю SD-карту.

    Где это ты узнал?


    Причем тут программирование?

    > Вопрос в следующем. Может ли программа САМА создать свой каталог с именем
    > типа “/storage/sdcard1/Android/data/ru.yandex.yandexmaps”? Или его обязательно
    > нужно вручную создавать через системный файловый менеджер? Сейчас проверить не могу,
    > может кто-то уже пробовал, что получилось?

    Когда пишешь программу в манифесте указываешь нужные пермишоны

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    File MapDir = new File(Environment.getExternalStorageDirectory().toString()+"/Android/data/ru.yandex.yandexmaps");
    MapDir.mkdirs();

    Там ещё кучу проверок надо перед записью http://developer.android.com/reference/android/os/Environmen...

    сообщить модератору +/ответить
использование файла шаблонов в GREP, Yarolin, (Shell скрипты) 16-Янв-15, 13:02  [ | | ] [линейный вид] [смотреть все]
Поиск и замена текста во всех txt, всего каталога., dydaevskiy, (Shell скрипты) 03-Фев-14, 09:44  [ | | ] [линейный вид] [смотреть все]
Как в Python открыть текстовый файл 'без кодировки'?, AV, (Разное) 02-Янв-15, 12:35  [ | | ] [линейный вид] [смотреть все]
iptables почему-то нет доступа к ресурсам?!, tnega, (Shell скрипты) 05-Янв-15, 22:06  [ | | ] [линейный вид] [смотреть все]
bash одна команда выполнить все значения из файла, tnega, (Shell скрипты) 04-Янв-15, 14:26  [ | | ] [линейный вид] [смотреть все]
  • для начала советую осилить ipset bitmap ip,macc ним зело проще работать для авто, ibujhbygblfh, 14:54 , 04-Янв-15 (1)
    для начала советую осилить ipset bitmap:ip,mac
    c ним зело проще работать для авторизации по маку, да и когда пар ип/мак много оно быстрее на порядки

    сообщить модератору +/ответить
    • спасибо за совет но пользователей всего несколько десятков, не вижу смысла в ip, tnega, 18:02 , 04-Янв-15 (2)
      > для начала советую осилить ipset bitmap:ip,mac
      > c ним зело проще работать для авторизации по маку, да и когда
      > пар ип/мак много оно быстрее на порядки

      спасибо за совет. но пользователей всего несколько десятков, не вижу смысла в ipset.
      алгоритм ввода команд в ipset как я вижу такой же как и в iptables.
      с каждый запуском компьютера так же нужно вводить все правила.

      но погуглив примеры ipset я наткнулся на полезный скрипт, который и был мне нужен:

      подстроил его под себя:
      file=$(cat base | cut -d" " -f2)
      for ip in $file
      do
      iptables -I FORWARD 1 -s $ip -j ACCEPT
      done

      попрошу о помощи  - доработать скрипт.

      Как вы видите скрипт будет брать второй значение из каждой строки нашей базы данных, а именно - ип адрес.
      Мне хотелось бы, чтобы он брал еще и третье значение - макс адрес. шаманю сейчас со скриптом, так скажем методом тыка, пока ничего не получается.

      сообщить модератору +/ответить
  • gt оверквотинг удален cat base 124 awk print iptables -I FORWARD 1 -m ma, shadow_alone, 20:31 , 04-Янв-15 (3)
    >[оверквотинг удален]
    > do
    > echo "Введите абонента:"
    > read name
    > ip=`sed /$name/p -n base | cut -d" " -f2`
    > mac=`sed /$name/p -n base | cut -d" " -f3`
    > iptables -I FORWARD 1 -m mac --mac-source $mac -s $ip -j ACCEPT
    > exit
    > done
    > Так же хотелось бы сделать так, чтобы закоментированный строки в нашй базе
    > данных не выполнялись.

    cat base | awk '{print "iptables -I FORWARD 1 -m mac --mac-source " $3 " -s " $2 " -j ACCEPT"}'|sh

    сообщить модератору +/ответить
    • gt оверквотинг удален то, что нужно спасибо большое очень Вам благодарен оп, tnega, 20:49 , 04-Янв-15 (4)
      >[оверквотинг удален]
      >> read name
      >> ip=`sed /$name/p -n base | cut -d" " -f2`
      >> mac=`sed /$name/p -n base | cut -d" " -f3`
      >> iptables -I FORWARD 1 -m mac --mac-source $mac -s $ip -j ACCEPT
      >> exit
      >> done
      >> Так же хотелось бы сделать так, чтобы закоментированный строки в нашй базе
      >> данных не выполнялись.
      > cat base | awk '{print "iptables -I FORWARD 1 -m mac --mac-source
      > " $3 " -s " $2 " -j ACCEPT"}'|sh

      то, что нужно! спасибо большое! очень Вам благодарен! оперативно!

      сообщить модератору +/ответить
      • cat base 124 grep -v 124 awk print iptables -I FORWARD 1 -m mac --m, shadow_alone, 22:51 , 04-Янв-15 (5)
        >>> Так же хотелось бы сделать так, чтобы закоментированный строки в нашй базе
        >>> данных не выполнялись.

        cat base |grep -v "^#" | awk '{print "iptables -I FORWARD 1 -m mac --mac-source  " $3 " -s " $2 " -j ACCEPT"}'|sh

        сообщить модератору +/ответить
        • Еще раз Спасибо Вам Хочу доработать скрипт включения и отключения пользователей , tnega, 23:55 , 04-Янв-15 (6) –1
          >>>> Так же хотелось бы сделать так, чтобы закоментированный строки в нашй базе
          >>>> данных не выполнялись.
          > cat base |grep -v "^#" | awk '{print "iptables -I FORWARD 1
          > -m mac --mac-source  " $3 " -s " $2 "
          > -j ACCEPT"}'|sh

          Еще раз Спасибо Вам!

          Хочу доработать скрипт включения и отключения пользователей!

          Опишу все с нуля:

          Наша база пользователей:
          user1 10.10.0.1 00:00:00:00:00:00
          #user2 10.10.0.2 11:11:11:11:11:11
          #user3 10.10.0.3 22:22:22:22:22:22

          Ваша команда которая дает доступ абонентам при старте системы, при этом закоментированные строки не выполняются:
          cat base |grep -v "^#" | awk '{print "iptables -I FORWARD 1
          > -m mac --mac-source  " $3 " -s " $2 "
          > -j ACCEPT"}'|sh

          И скрипты включения и отключения пользоваталей:

          Включаем так:
          echo "Введите абонента:"
          read name
          ip=`sed /$name/p -n base | cut -d" " -f2`
          mac=`sed /$name/p -n base | cut -d" " -f3`
          iptables -R FORWARD 1 -m mac --mac-source $mac -s $ip -j ACCEPT

          Выключаем:
          echo "Введите абонента:"
          read name
          ip=`sed /$name/p -n base | cut -d" " -f2`
          mac=`sed /$name/p -n base | cut -d" " -f3`
          iptables -R FORWARD 1 -m mac --mac-source $mac -s $ip -j DROP

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

          сообщить модератору –1 +/ответить
 
Пометить прочитанным Создать тему
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Архив | Избранное | Мое | Новое | |
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.


  Закладки на сайте
  Проследить за страницей
Created 1996-2015 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList
п╡п╣я│п╣п╩я▀п╣ п╨п╟я─я┌п╦п╫п╨п╦ я─п╟п╥п╡п╩п╣п╨п╟я┌п╣п╩я▄п╫я▀п╣ пЁп╦я└п╨п╦ п╦п╫я┌я─п╣я│п╫я▀п╣ я└п╟п╨я┌я▀ я│п╪п╣я┬п╫я▀п╣ п╡п╦п╢п╣п╬ я│п╪п╣я┬п╫я▀п╣ п╦я│я┌п╬я─п╦п╦ п╦п╥ я│п╬я├я│п╣я┌п╣п╧