Выполнение работы cron. Все мои тесты и попытки были тщетны

1

Это первый раз, когда я запускаю работу cron. Я делаю это на виртуальной машине с Amazon, Ubuntu 14.04.2 LTS.

Это файл моего crontab -e:

# Edit this file to introduce tasks to be run by cron.
# 
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# 
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').# 
# Notice that tasks will be started based on the cron system
# daemon notion of time and timezones.
# 
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# 
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# 
# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command
*/1 * * * * root /usr/bin/php /var/www/html/testimages/script.php

Ну, это то, что я пробовал до сих пор, я составляю список, чтобы любой, кто мог иметь проблемы с заданиями cron, мог проверить, что делать раньше:

  • Изменение пользователя ubuntu crontab и пользователя root crontab.
  • Оставьте пустую строку в конце
  • * * * * * root/usr/bin/php/var/www/html/testimages/script.php
  • * * * * * ubuntu/usr/bin/php/var/www/html/testimages/script.php
  • * * * * */usr/bin/php/var/www/html/testimages/script.php
  • * * * * * php/var/www/html/testimages/script.php
  • * * * * * "php/var/www/html/testimages/script.php"
  • Все это, но заменяя первое * на */1
  • Установка разрешения 755 на script.php
  • Перезапуск cron
  • Добавление строки заголовка в script.php: #!/usr/local/bin/php -q

Когда я grep CRON/var/log/syslog я вижу:

Oct 27 15:32:01 ip-172-31-1-104 CRON [1184]: (корень) CMD (root/usr/bin/php/var/www/html/testimages/script.php)

Oct 27 15:33:01 ip-172-31-1-104 CRON [1520]: (корень) CMD (root/usr/bin/php/var/www/html/testimages/script.php)

Oct 27 15:34:01 ip-172-31-1-104 CRON [1849]: (root) CMD (root/usr/bin/php/var/www/html/testimages/script.php)

Oct 27 15:35:01 ip-172-31-1-104 CRON [2188]: (root) CMD (root/usr/bin/php/var/www/html/testimages/script.php)

Oct 27 15:36:01 ip-172-31-1-104 CRON [2513]: (корень) CMD (root/usr/bin/php/var/www/html/testimages/script.php)

Oct 27 15:37:01 ip-172-31-1-104 CRON [2840]: (корень) CMD (root/usr/bin/php/var/www/html/testimages/script.php)

Oct 27 15:38:01 ip-172-31-1-104 CRON [3165]: (root) CMD (root/usr/bin/php/var/www/html/testimages/script.php)

Oct 27 15:39:01 ip-172-31-1-104 CRON [3494]: (корень) CMD (root/usr/bin/php/var/www/html/testimages/script.php)

сценарий в основном выполняет код и отправляет электронное письмо, что отлично работает, когда я php/var/www/html/testimages/script.php в командной строке, но я не получаю эту почту при установке в cron.

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

Большое спасибо.

С уважением.

Рафаэль.


EDIT:

это файл php, который я пытаюсь запустить

#!/usr/local/bin/php -q
<?php
    echo '<script>!function(e){function t(e,t){var n=new Image,r=e.getAttribute("data-src");n.onload=function(){e.parent?e.parent.replaceChild(n,e):e.src=r,t?t():null},n.src=r}function n(t){var n=t.getBoundingClientRect();return n.top>=0&&n.left>=0&&n.top<=(e.innerHeight||document.documentElement.clientHeight)}for(var r=function(e,t){if(document.querySelectorAll)t=document.querySelectorAll(e);else{var n=document,r=n.styleSheets[0]||n.createStyleSheet();r.addRule(e,"f:b");for(var l=n.all,c=0,o=[],i=l.length;i>c;c++)l[c].currentStyle.f&&o.push(l[c]);r.removeRule(0),t=o}return t},l=function(t,n){e.addEventListener?this.addEventListener(t,n,!1):e.attachEvent?this.attachEvent("on"+t,n):this["on"+t]=n},c=new Array,o=r("img.lazy"),i=function(){for(var e=0;e<c.length;e++)n(c[e])&&t(c[e],function(){c.splice(e,e)})},u=0;u<o.length;u++)c.push(o[u]);i(),l("scroll",i)}(this);</script>'

    echo '<style>table, th, td {border: 1px solid black;    border-collapse: collapse;}th, td {padding: 15px;}th {    text-align: left;    background-color: #666666;}</style>';

    require '/var/www/html/libraries/mail/PHPMailerAutoload.php';
    require '/var/www/html/libraries/myLibrary/core.php';
    $mail = new PHPMailer;


    $to = "[email protected]";

    ob_start();

    function echoText($text) {
        echo $text;
    }

    $show_json = $_GET['show_json'];

    echoContent(); // belongs to the core


    // send email

    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'smtp.gmail.com';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = '[email protected]';                 // SMTP username
    $mail->Password = 'secret';                           // SMTP password
    $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, 'ssl' also accepted
    $mail->Port = 587;                                    // TCP port to connect to

    $mail->setFrom('[email protected]', 'Watchdog - Rafael');
//        $mail->addAddress('[email protected]', 'Joe User');     // Add a recipient
    $mail->addAddress($to);

//        $mail->addReplyTo('[email protected]', 'Information');

//        $mail->addBCC('[email protected]');

//        $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
//        $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
    $mail->isHTML(true);                                  // Set email format to HTML

    $mail->Subject = 'Test on database';
    $contents = ob_get_contents();
    $mail->Body    = $contents;


//        $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    if(!$mail->send()) {
        echo 'Message could not be sent.';
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
        echo 'Message has been sent';
    }
    print_r(error_get_last());

}

?>

EDIT: Я пытаюсь установить скрипт bash для его запуска и экспортировать даже результаты в файл log.txt... что log.txt пуст.

  • 0
    Пожалуйста, опубликуйте php-файл, о котором вы говорите.
  • 0
    Вы пытались добавить некоторые записи в вашем скрипте, чтобы увидеть, что происходит. просто напишите в файл, чтобы увидеть процесс. Также проверьте /var/log/apache2/error.log . Я думаю, что php по-прежнему будет регистрировать это из командной строки или просто проверить /var/log наличие других файлов, в которых будут ошибки.
Теги:
cron

1 ответ

1
Лучший ответ

Я обнаружил, что система посылает мне письма вроде:

У вас новая почта в /var/mail/ubuntu

Я игнорировал их, так как я смог выполнить сценарий в командной строке, поэтому я думал, что ошибок не было. Но они были (a ;)... поэтому командная строка выполняет скрипт, но не cron, если есть минимальная ошибка. Что это было.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню