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

Teamk

Постоялец
Регистрация
13 Ноя 2013
Сообщения
208
Реакции
100
Здравствуйте друзья. Купил дополнение к OpenCart - аукцион. Встало нормально и все работает со стороны дополнения. Но там есть строка, которая прописывается в крон.
curl Для просмотра ссылки Войди или Зарегистрируйся >/dev/null 2>&1[/spoil]
Записав его, ничего не происходит. Скрипт не выполняется. Вот что приходит на почту:
[spoil]% 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[/spoil]

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

Вот код скрипта:
[spoil]
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, $errstr, 15);
    stream_set_blocking($fsock, false);
    stream_set_timeout($fsock, 15);
    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();
?>
 
Последнее редактирование:
А имя на адрес вашего сайта не нужно сменить ?
PS crontab -e от пользователя, от которого php запущен.
Я конечно нуб, но сайт исправил. А про вторую строчку можно поподробнее?

Написал в тех.поддержку, они сказали, что скрипт выполняется.
 
Последнее редактирование:
Друзья, а вот и логи от хостера.
Судя по логам доступа, скрипт выполняется:
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
Для просмотра ссылки Войди или Зарегистрируйся 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"
 
Я конечно нуб, но сайт исправил. А про вторую строчку можно поподробнее?
Зря смеетесь =) Именно таких ошибок преобладающее колличество
PS Ну, попробуйте перенаправить потоки вместо /dev/null куда-нить себе в файл. Посмотрите, что там.
 
Зря смеетесь =) Именно таких ошибок преобладающее количество
PS Ну, попробуйте перенаправить потоки вместо /dev/null куда-нить себе в файл. Посмотрите, что там.
Я не смеюсь, но знаю, что такие ошибки часто совершаются)Смотрите, что приходит на почту, когда у убираю /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
 
Лучше закинуть вызов в cron.d с указанием имени пользователя, от которого выполняется скрипт. Судя по логам - скрипт дергает сайт и получает от него 200.
Подергать скрипт через php из консоли, посмотреть какие данные выдает.
 
несколько идей:
1) убедитесь что скрипт может сделать запрос по адресу (например из шела wget Для просмотра ссылки Войди или Зарегистрируйся) Если не работает, попробуйте прописать в хост 127.0.0.1 Для просмотра ссылки Войди или Зарегистрируйся
(хотя если в логах есть строки о вызове то по идее не должно быть)

2) говоря "Скрипт не выполняется." что вы имеете ввиду? Он выполняется если его вызвать вручную из браузера?
 
убедитесь что скрипт может сделать запрос по адресу
Если бы не выполнялся, то 200 от сервера бы не получал.
 
Скрипт работает. 200 - нормальный ответ сервера. Пусть ТС попробует перенаправить потоки stdout и stderror, как я уже писал выше
 
Назад
Сверху