Крон планировщик

Тема в разделе "Администрирование серверов", создана пользователем Teamk, 10 мар 2014.

Модераторы: mefish, stooper
  1. Teamk

    Teamk

    Регистр.:
    13 ноя 2013
    Сообщения:
    173
    Симпатии:
    64
    Здравствуйте друзья. Купил дополнение к OpenCart - аукцион. Встало нормально и все работает со стороны дополнения. Но там есть строка, которая прописывается в крон.

    Записав его, ничего не происходит. Скрипт не выполняется. Вот что приходит на почту:
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed

    0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
    0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0


    Что я делаю не так?

    Вот код скрипта:
    PHP:
    <?php
    // add more IP addresses if you are running the cron jobs from another host
    $allowip = array();
    $allowip[] = '127.0.0.1';                                            // acceptable ip address - Loop back IP
    $allowip[] = (string)$_SERVER['SERVER_ADDR'];                        // acceptable ip address - Server own IP
    //$allowip[] = 'ADD MORE IP';                                        // acceptable ip address - Secured Host (Optional to setup)
    //$allowip[] = 'ADD MORE IP';                                        // acceptable ip address - Secured Host (Optional to setup)

    $tabs = array();
    $tabs[] = 'route=product/auction/auctionglobalvalidateactive';        // 1 = global validate active auctions
    $tabs[] = 'route=product/auction/auctionglobalvalidatewon';            // 2 = global validate ended auctions (won / buyout)
    $tabs[] = 'route=product/auction/auctionglobalvalidateintegrity';    // 3 = global validate active auctions integrity
    $tabs[] = 'route=product/auction/auctionglobalsendnotification';    // 4 = global send auction email notifications

    if (!$allowip || ($allowip && in_array((string)$_SERVER['REMOTE_ADDR'], $allowip))) {
        foreach (
    $tabs as $tab) {
            
    $auth '&auth=' urlencode(sha1(time()));
            
    accessPublicFunctionBySocket(getLocalhostURL(''), $tab $auth);
        }
    }

    function 
    accessPublicFunctionBySocket($url$params) {
        
    $parts parse_url($url);
        
    $fsock fsockopen($parts['host'], $parts['port'], $errno$errstr15);
        
    stream_set_blocking($fsockfalse);
        
    stream_set_timeout($fsock15);
        if (
    $fsock) {
            
    $out "GET " $parts['path'] . "?" $params " HTTP/1.1\r\n";
            
    $out .= "Host: " $parts['host'] . "\r\n";
            
    $out .= "Connection: Close\r\n\r\n";
            
    fwrite($fsock$out);
            
    fclose($fsock);
        }
    }

    function 
    getLocalhostURL($server_path) {
        
    $server_prefix = !empty($_SERVER['HTTPS']) ? "https://" "http://";
        
    $server_name $_SERVER['SERVER_NAME'];
        
    $server_port ":" $_SERVER['SERVER_PORT'];
        
    $server_root "/index.php";
        return 
    $server_prefix $server_name $server_port $server_path $server_root;
    }

    exit();
    ?>
     
    Последнее редактирование: 10 мар 2014
  2. Kenny

    Kenny newbie

    Регистр.:
    17 авг 2006
    Сообщения:
    462
    Симпатии:
    147
    А имя на адрес вашего сайта не нужно сменить ?
    PS crontab -e от пользователя, от которого php запущен.
     
  3. Teamk

    Teamk

    Регистр.:
    13 ноя 2013
    Сообщения:
    173
    Симпатии:
    64
    Я конечно нуб, но сайт исправил. А про вторую строчку можно поподробнее?

    Написал в тех.поддержку, они сказали, что скрипт выполняется.
     
    Последнее редактирование: 10 мар 2014
  4. Teamk

    Teamk

    Регистр.:
    13 ноя 2013
    Сообщения:
    173
    Симпатии:
    64
    Друзья, а вот и логи от хостера.
    Судя по логам доступа, скрипт выполняется:
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:13:56:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:13:57:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:13:58:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:13:59:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:14:00:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:14:01:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:14:02:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:14:03:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:14:04:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:14:05:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:14:06:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:14:07:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:14:08:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
    www.hotauc.ru 78.110.50.218 - - [10/Mar/2014:14:09:01 +0400] "GET /auction.php HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
     
  5. Kenny

    Kenny newbie

    Регистр.:
    17 авг 2006
    Сообщения:
    462
    Симпатии:
    147
    Зря смеетесь =) Именно таких ошибок преобладающее колличество
    PS Ну, попробуйте перенаправить потоки вместо /dev/null куда-нить себе в файл. Посмотрите, что там.
     
  6. Teamk

    Teamk

    Регистр.:
    13 ноя 2013
    Сообщения:
    173
    Симпатии:
    64
    Я не смеюсь, но знаю, что такие ошибки часто совершаются)Смотрите, что приходит на почту, когда у убираю /dev/null
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed

    0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
    0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
     
  7. Stabr

    Stabr Создатель

    Регистр.:
    13 мар 2014
    Сообщения:
    31
    Симпатии:
    3
    Лучше закинуть вызов в cron.d с указанием имени пользователя, от которого выполняется скрипт. Судя по логам - скрипт дергает сайт и получает от него 200.
    Подергать скрипт через php из консоли, посмотреть какие данные выдает.
     
  8. Alekc

    Alekc Постоялец

    Регистр.:
    9 мар 2014
    Сообщения:
    50
    Симпатии:
    26
    несколько идей:
    1) убедитесь что скрипт может сделать запрос по адресу (например из шела wget http://site.org/asd) Если не работает, попробуйте прописать в хост 127.0.0.1 www.hotauc.ru
    (хотя если в логах есть строки о вызове то по идее не должно быть)

    2) говоря "Скрипт не выполняется." что вы имеете ввиду? Он выполняется если его вызвать вручную из браузера?
     
  9. Stabr

    Stabr Создатель

    Регистр.:
    13 мар 2014
    Сообщения:
    31
    Симпатии:
    3
    Если бы не выполнялся, то 200 от сервера бы не получал.
     
  10. Kenny

    Kenny newbie

    Регистр.:
    17 авг 2006
    Сообщения:
    462
    Симпатии:
    147
    Скрипт работает. 200 - нормальный ответ сервера. Пусть ТС попробует перенаправить потоки stdout и stderror, как я уже писал выше