Сценарий PHP с ошибкой cron

Похоже, вы попали в ошибку 1274469; пакет libnb-javaparser-java новее, чем установка netbeans.

Исправление состоит в том, чтобы вручную понизить версию libnb-javaparser-java, чтобы соответствовать версии установленного netbeans. Вы можете сделать это с помощью:

wget http://archive.ubuntu.com/ubuntu/pool/universe/libn/libnb-javaparser-java/libnb-javaparser-java_7.0.1-1_all.deb
sudo dpkg -i libnb-javaparser-java_7.0.1-1_all.deb

, а затем перезагрузить netbeans.

0
задан 17 November 2017 в 14:50

3 ответа

Ваша проблема, как я уже упоминал, в вашей среде. Глядя на ваш php-скрипт и запись crontab, вызывающую его, нет никакой ссылки на ваш переход в каталог, содержащий файлы зависимостей. По умолчанию current working directory является вашей домашней папкой (~/).

Также ваш файл myscript.php использует директиву require 'config.php';, но он не указывает на папку /myscript/, где он расположен .

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

Изменить файл

Изменить с :

<?php
///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//Recuperation des valeurs obligatoires
//Preparation de la DATE
date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris)
$date   = date('Y-m-d H:i');
$minute = date('i');
require 'config.php';

Изменить на:

<?php
///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//Recuperation des valeurs obligatoires
//Preparation de la DATE
chdir("/myscript");
date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris)
$date   = date('Y-m-d H:i');
$minute = date('i');
require 'config.php';

Вы упомянули об отладке. Я не знаю метод отладки, который вы используете, но вы можете найти удобный способ отладки ваших сценариев cron, чтобы перенаправить его в файл журнала. По умолчанию выход идет на ваш /var/log/syslog. Перенаправление вывода в предпочтительный файл даст вам более чистый журнал.

Добавьте заголовок shebang и сделайте свой исполняемый файл сценария из командной строки.

Соображения для вашей записи crontab и файла сценария

Запись Crontab:

Cron : */15 * * * * /myscript/myscript.php >> /myscript/script.log 2>> myscript.err

PHP Script:

#!/usr/bin/php
<?php
///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//Recuperation des valeurs obligatoires
//Preparation de la DATE
chdir("/myscript");
date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris)
$date   = date('Y-m-d H:i');
$minute = date('i');
require 'config.php';

Не забудьте chmod +x ваш /myscript/myscript.php.

Окончательное разрешение

Проблема была разрешена в чате (см. Комментарии). Основная проблема (и, скорее всего, конечная проблема) - это расположение файлов. Запуск приложения из командной строки и устранение ошибок устранили проблемы.

Проблема с двумя сценариями php в cron была решена путем изучения журнала (стандартный вывод) показывал только один экземпляр двух запущенных скриптов , Это было вызвано путаницей перенаправления >> по сравнению с > выходом. Единственный символ, отличный от символа, переписывал предыдущий экземпляр. Переадресация >> разрешила эту часть.

2
ответ дан 22 May 2018 в 22:05

Ваша проблема, как я уже упоминал, в вашей среде. Глядя на ваш php-скрипт и запись crontab, вызывающую его, нет никакой ссылки на ваш переход в каталог, содержащий файлы зависимостей. По умолчанию current working directory является вашей домашней папкой (~/).

Также ваш файл myscript.php использует директиву require 'config.php';, но он не указывает на папку /myscript/, где он расположен .

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

Изменить файл

Изменить с :

<?php ///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //Recuperation des valeurs obligatoires //Preparation de la DATE date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris) $date = date('Y-m-d H:i'); $minute = date('i'); require 'config.php';

Изменить на:

<?php ///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //Recuperation des valeurs obligatoires //Preparation de la DATE chdir("/myscript"); date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris) $date = date('Y-m-d H:i'); $minute = date('i'); require 'config.php';

Вы упомянули об отладке. Я не знаю метод отладки, который вы используете, но вы можете найти удобный способ отладки ваших сценариев cron, чтобы перенаправить его в файл журнала. По умолчанию выход идет на ваш /var/log/syslog. Перенаправление вывода в предпочтительный файл даст вам более чистый журнал.

Добавьте заголовок shebang и сделайте свой исполняемый файл сценария из командной строки.

Соображения для вашей записи crontab и файла сценария

Запись Crontab:

Cron : */15 * * * * /myscript/myscript.php >> /myscript/script.log 2>> myscript.err

PHP Script:

#!/usr/bin/php <?php ///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //Recuperation des valeurs obligatoires //Preparation de la DATE chdir("/myscript"); date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris) $date = date('Y-m-d H:i'); $minute = date('i'); require 'config.php';

Не забудьте chmod +x ваш /myscript/myscript.php.

Окончательное разрешение

Проблема была разрешена в чате (см. Комментарии). Основная проблема (и, скорее всего, конечная проблема) - это расположение файлов. Запуск приложения из командной строки и устранение ошибок устранили проблемы.

Проблема с двумя сценариями php в cron была решена путем изучения журнала (стандартный вывод) показывал только один экземпляр двух запущенных скриптов , Это было вызвано путаницей перенаправления >> по сравнению с > выходом. Единственный символ, отличный от символа, переписывал предыдущий экземпляр. Переадресация >> разрешила эту часть.

2
ответ дан 18 July 2018 в 12:30

Ваша проблема, как я уже упоминал, в вашей среде. Глядя на ваш php-скрипт и запись crontab, вызывающую его, нет никакой ссылки на ваш переход в каталог, содержащий файлы зависимостей. По умолчанию current working directory является вашей домашней папкой (~/).

Также ваш файл myscript.php использует директиву require 'config.php';, но он не указывает на папку /myscript/, где он расположен .

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

Изменить файл

Изменить с :

<?php ///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //Recuperation des valeurs obligatoires //Preparation de la DATE date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris) $date = date('Y-m-d H:i'); $minute = date('i'); require 'config.php';

Изменить на:

<?php ///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //Recuperation des valeurs obligatoires //Preparation de la DATE chdir("/myscript"); date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris) $date = date('Y-m-d H:i'); $minute = date('i'); require 'config.php';

Вы упомянули об отладке. Я не знаю метод отладки, который вы используете, но вы можете найти удобный способ отладки ваших сценариев cron, чтобы перенаправить его в файл журнала. По умолчанию выход идет на ваш /var/log/syslog. Перенаправление вывода в предпочтительный файл даст вам более чистый журнал.

Добавьте заголовок shebang и сделайте свой исполняемый файл сценария из командной строки.

Соображения для вашей записи crontab и файла сценария

Запись Crontab:

Cron : */15 * * * * /myscript/myscript.php >> /myscript/script.log 2>> myscript.err

PHP Script:

#!/usr/bin/php <?php ///////////////////////////////////////////// Preparation \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ //Recuperation des valeurs obligatoires //Preparation de la DATE chdir("/myscript"); date_default_timezone_set('Europe/Paris'); // Mise a la bonne heure (Timezone: Europe/Paris) $date = date('Y-m-d H:i'); $minute = date('i'); require 'config.php';

Не забудьте chmod +x ваш /myscript/myscript.php.

Окончательное разрешение

Проблема была разрешена в чате (см. Комментарии). Основная проблема (и, скорее всего, конечная проблема) - это расположение файлов. Запуск приложения из командной строки и устранение ошибок устранили проблемы.

Проблема с двумя сценариями php в cron была решена путем изучения журнала (стандартный вывод) показывал только один экземпляр двух запущенных скриптов , Это было вызвано путаницей перенаправления >> по сравнению с > выходом. Единственный символ, отличный от символа, переписывал предыдущий экземпляр. Переадресация >> разрешила эту часть.

2
ответ дан 24 July 2018 в 19:58

Другие вопросы по тегам:

Похожие вопросы: