V17 Problème lancement tâche planifiée sauvegarde BDD

Bonjour depuis le passage en V17 (depuis la V12)
J’ai des erreurs sur mes executions CRON (via IONOS)
et sur la tâche planifiée pour la sauvegarde j’ai ce message d’érreur

« Échec de l’exécution de commande externe. Vérifiez qu’elle est disponible et exécutable par l’utilisateur de votre serveur PHP. Vérifiez également que la commande n’est pas protégée au niveau du shell par une couche de sécurité comme apparmor. »

je suis en PHP 8.0, serveur IONOS

Bonjour,

Que donne une sauvegarde manuelle ?

la sauvegarde manuelle (via le bouton) fonctionne parfaitement
pour info cela fonctionnait aussi en v12

Donc aucune tâche CRON fonctionne. Il faudrait sans doute vérifier le chemin dans le script qui lance les tâches CRON. A voir comment c’est installé sur IONOS, le répertoire,…
Et essayer de lancer la CRON à travers la console par SSH sur l’hébergeur.

si je lance l’url manuellement (PS : il faudrait faire un URLencode sur l’interface pour récupérer une URL correcte s’il y a des espaces dans l’id de l’utilisateur)

J’ai d’affiché cela

Citation
cron_run_jobs.php cronjobid: 3 priority=10 entity=1 label=SendEmailsReminders - qualified - result of run_jobs = 1 - reprogrammed cron_run_jobs.php cronjobid: 4 priority=50 entity=0 label=PurgeDeleteTemporaryFilesShort → we change entity so we reload user and conf - not qualified cron_run_jobs.php cronjobid: 1 priority=50 entity=1 label=SendReminderForExpiredSubscriptionTitlecron_run_jobs.php cronjobid: 2 priority=50 entity=1 label=RecurringInvoicesJob - qualified - result of run_jobs = 1 - reprogrammed cron_run_jobs.php cronjobid: 5 priority=90 entity=0 label=MakeLocalDatabaseDumpShort → we change entity so we reload user and conf - not qualified Result: 5 jobs - 2 launched = 2 OK + 0 KO

mais rien de nouveau dans la sauvegarde

Crontab est accessible en SSH, je ne pense pas que le problème vient du CRON

personne a une idée ?

Bonjour,

On est toujours en rupture de boule de cristal, compliqué pour faire le jeu des devinettes.

Aucune réponse ?

Sinon activez les logs dolibarr pour voir ce qu’il se passe.

On peut vous donner des pistes, mais si vous ne cherchez pas vous-même, faites vous aider :Dolibarr Preferred Partners

1 « J'aime »

j’ai répondu plus haut, oui j’ai testé le crontab en ssh et comme indiqué cela a fonctionné jusqu’a la V12 avec le même hébergeur. Donc peut que sans boule de crystal, il y a des personnes qui sont courant des changement qui auraient pu avoir lieu dans le fichier CRONLIST ou des changements dans la sécurité de PHP 8.0

Voila ci dessous le résultat du log après avoir lancer la tache planifiée pour le dump (j’ai anonymisé le user et la database avec des yyyyyy et xxxxxx)

Dans le log il indique une valeur de retour 127 (mais je ne sais pas ce sur quel référentiel)

Citation
Cronjob::fetch
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 sql=SELECT t.rowid, t.entity, t.tms, t.datec, t.jobtype, t.label, t.command, t.classesname, t.objectname, t.methodename, t.params, t.md5params, t.module_name, t.priority, t.datelastrun, t.datenextrun, t.dateend, t.datestart, t.lastresult, t.datelastresult, t.lastoutput, t.unitfrequency, t.frequency, t.status, t.processing, t.pid, t.email_alert, t.fk_user_author, t.fk_user_mod, t.note as note_private, t.nbrun, t.maxrun, t.libname, t.test FROM fci_cronjob as t WHERE t.rowid = 5
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 HookManager::initHooks Loading hooks: context=cron-path=/myfield/class/actions_myfield.class.php
2023-06-19 16:04:28 INFO 2a01:e0a:6:b330::c66a:a378 Conf::setValues
2023-06-19 16:04:28 INFO 2a01:e0a:6:b330::c66a:a378 Cronjob::run_jobs entity for running job is 0
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 sql=SELECT u.rowid, u.lastname, u.firstname, u.employee, u.gender, u.civility as civility_code, u.birth, u.email, u.personal_email, u.job, u.socialnetworks, u.signature, u.office_phone, u.office_fax, u.user_mobile, u.personal_mobile, u.address, u.zip, u.town, u.fk_state as state_id, u.fk_country as country_id, u.admin, u.login, u.note_private, u.note_public, u.pass, u.pass_crypted, u.pass_temp, u.api_key, u.fk_soc, u.fk_socpeople, u.fk_member, u.fk_user, u.ldap_sid, u.fk_user_expense_validator, u.fk_user_holiday_validator, u.statut as status, u.lang, u.entity, u.datec as datec, u.tms as datem, u.datelastlogin as datel, u.datepreviouslogin as datep, u.iplastlogin, u.ippreviouslogin, u.datelastpassvalidation, u.datestartvalidity, u.dateendvalidity, u.photo as photo, u.openid as openid, u.accountancy_code, u.thm, u.tjm, u.salary, u.salaryextra, u.weeklyhours, u.color, u.dateemployment, u.dateemploymentend, u.fk_warehouse, u.ref_ext, u.default_range, u.default_c_exp_tax_cat, u.national_registration_number, u.ref_employee, c.code as country_code, c.label as country, d.code_departement as state_code, d.nom as state FROM fci_user as u LEFT JOIN fci_c_country as c ON u.fk_country = c.rowid LEFT JOIN fci_c_departements as d ON u.fk_state = d.rowid WHERE u.entity IS NOT NULL AND u.login = ‹ yaele zenouda › ORDER BY u.entity ASC
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 sql=SELECT rowid, name, label, type, size, elementtype, fieldunique, fieldrequired, param, pos, alwayseditable, perms, langs, list, printable, totalizable, fielddefault, fieldcomputed, entity, enabled, help, css, cssview, csslist FROM fci_extrafields WHERE elementtype = ‹ user › ORDER BY pos
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 Cronjob::run_jobs jobtype=method userlogin=yaele zenouda
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 BEGIN Transaction
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 Cronjob::update
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 sql=UPDATE fci_cronjob SET entity=0, label=‹ MakeLocalDatabaseDumpShort ›, jobtype=‹ method ›, command=‹  ›, classesname=‹ core/class/utils.class.php ›, objectname=‹ Utils ›, methodename=‹ dumpDatabase ›, params=‹ none,auto,1,auto,10 ›, md5params=‹  ›, module_name=‹ cron ›, priority=90, datelastrun=‹ 2023-06-19 18:04:28 ›, datenextrun=‹ 2023-06-14 19:08:00 ›, dateend=null, datestart=‹ 2020-06-12 22:08:00 ›, datelastresult=null, lastresult=‹  ›, lastoutput=‹  ›, unitfrequency=86400, frequency=1, status=1, processing=1, pid=116799, email_alert = ‹  ›, fk_user_mod = 2, note=‹ MakeLocalDatabaseDump ›, nbrun=801, maxrun=0, libname=null, test=‹ 1 › WHERE rowid=5
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 COMMIT Transaction
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 Cronjob::run_jobs START Utils->dumpDatabase(none,auto,1,auto,10);
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 Utils::dumpDatabase type=auto compression=none file=auto
2023-06-19 16:04:28 INFO 2a01:e0a:6:b330::c66a:a378 functions.lib::dol_mkdir: dir=/homepages/24/d363354486/htdocs/clickandbuilds/dolibarr/FCI_DOLIBARR/documents/admin/backup
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 sql=SHOW VARIABLES LIKE ‹ basedir ›
2023-06-19 16:04:28 INFO 2a01:e0a:6:b330::c66a:a378 functions.lib::dol_mkdir: dir=/homepages/24/d363354486/htdocs/clickandbuilds/dolibarr/FCI_DOLIBARR/documents/admin/backup
2023-06-19 16:04:28 INFO 2a01:e0a:6:b330::c66a:a378 Utils::dumpDatabase execmethod=1 command:/opt/mysql-5.7.41/bin/mysqldump yyyyyyyy -h xxxxxxx.hosting-data.io -u yyyyyyyy -P 3306 --protocol=tcp -K --add-drop-table=TRUE --tables -c -e --hex-blob --default-character-set=utf8 --no-tablespaces -p"*************" 2>&1
2023-06-19 16:04:28 ERR 2a01:e0a:6:b330::c66a:a378 Datadump retval after exec=127
2023-06-19 16:04:28 INFO 2a01:e0a:6:b330::c66a:a378 dol_delete_file file=/homepages/24/d363354486/htdocs/clickandbuilds/dolibarr/FCI_DOLIBARR/documents/admin/backup/mysqldump_yyyyyyyy_17.0.2_2306191804.sql.err disableglob=1 nophperrors=0 nohook=0
2023-06-19 16:04:28 WARNING 2a01:e0a:6:b330::c66a:a378 Failed to remove file /homepages/24/d363354486/htdocs/clickandbuilds/dolibarr/FCI_DOLIBARR/documents/admin/backup/mysqldump_yyyyyyyy_17.0.2_2306191804.sql.err
2023-06-19 16:04:28 ERR 2a01:e0a:6:b330::c66a:a378 Cronjob::run_jobs END result=-1 error=Échec de l’exécution de commande externe. Vérifiez qu’elle est disponible et exécutable par l’utilisateur de votre serveur PHP. Vérifiez également que la commande n’est pas protégée au niveau du shell par une couche de sécurité comme apparmor.
2023-06-19 16:04:28 INFO 2a01:e0a:6:b330::c66a:a378 Cronjob::run_jobs now we update job to track it is finished (with success or error)
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 BEGIN Transaction
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 Cronjob::update
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 sql=UPDATE fci_cronjob SET entity=0, label=‹ MakeLocalDatabaseDumpShort ›, jobtype=‹ method ›, command=‹  ›, classesname=‹ core/class/utils.class.php ›, objectname=‹ Utils ›, methodename=‹ dumpDatabase ›, params=‹ none,auto,1,auto,10 ›, md5params=‹  ›, module_name=‹ cron ›, priority=90, datelastrun=‹ 2023-06-19 18:04:28 ›, datenextrun=‹ 2023-06-14 19:08:00 ›, dateend=null, datestart=‹ 2020-06-12 22:08:00 ›, datelastresult=‹ 2023-06-19 18:04:28 ›, lastresult=‹ -1 ›, lastoutput=‹ Échec de l'exécution de commande externe. Vérifiez qu'elle est disponible et exécutable par l'utilisateur de votre serveur PHP. Vérifiez également que la commande n'est pas protégée au niveau du shell par une couche de sécurité comme apparmor.\nÉchec de l'exécution de commande externe. Vérifiez qu'elle est disponible et exécutable par l'utilisateur de votre serveur PHP. Vérifiez également que la commande n'est pas protégée au niveau du shell par une couche de sécurité comme apparmor. ›, unitfrequency=86400, frequency=1, status=1, processing=0, pid=null, email_alert = ‹  ›, fk_user_mod = 2, note=‹ MakeLocalDatabaseDump ›, nbrun=801, maxrun=0, libname=null, test=‹ 1 › WHERE rowid=5
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 COMMIT Transaction
2023-06-19 16:04:28 INFO 2a01:e0a:6:b330::c66a:a378 Conf::setValues
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 Cronjob::reprogram_jobs userlogin:yaele zenouda
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 sql=SELECT u.rowid, u.lastname, u.firstname, u.employee, u.gender, u.civility as civility_code, u.birth, u.email, u.personal_email, u.job, u.socialnetworks, u.signature, u.office_phone, u.office_fax, u.user_mobile, u.personal_mobile, u.address, u.zip, u.town, u.fk_state as state_id, u.fk_country as country_id, u.admin, u.login, u.note_private, u.note_public, u.pass, u.pass_crypted, u.pass_temp, u.api_key, u.fk_soc, u.fk_socpeople, u.fk_member, u.fk_user, u.ldap_sid, u.fk_user_expense_validator, u.fk_user_holiday_validator, u.statut as status, u.lang, u.entity, u.datec as datec, u.tms as datem, u.datelastlogin as datel, u.datepreviouslogin as datep, u.iplastlogin, u.ippreviouslogin, u.datelastpassvalidation, u.datestartvalidity, u.dateendvalidity, u.photo as photo, u.openid as openid, u.accountancy_code, u.thm, u.tjm, u.salary, u.salaryextra, u.weeklyhours, u.color, u.dateemployment, u.dateemploymentend, u.fk_warehouse, u.ref_ext, u.default_range, u.default_c_exp_tax_cat, u.national_registration_number, u.ref_employee, c.code as country_code, c.label as country, d.code_departement as state_code, d.nom as state FROM fci_user as u LEFT JOIN fci_c_country as c ON u.fk_country = c.rowid LEFT JOIN fci_c_departements as d ON u.fk_state = d.rowid WHERE u.entity IS NOT NULL AND u.login = ‹ yaele › ORDER BY u.entity ASC
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 Cronjob::reprogram_jobs datenextrun=1686762480 2023-06-14T19:08:00Z frequency=1 unitfrequency=86400
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 BEGIN Transaction
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 Cronjob::update
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 sql=UPDATE fci_cronjob SET entity=0, label=‹ MakeLocalDatabaseDumpShort ›, jobtype=‹ method ›, command=‹  ›, classesname=‹ core/class/utils.class.php ›, objectname=‹ Utils ›, methodename=‹ dumpDatabase ›, params=‹ none,auto,1,auto,10 ›, md5params=‹  ›, module_name=‹ cron ›, priority=90, datelastrun=‹ 2023-06-19 18:04:28 ›, datenextrun=‹ 2023-06-19 19:08:00 ›, dateend=null, datestart=‹ 2020-06-12 22:08:00 ›, datelastresult=‹ 2023-06-19 18:04:28 ›, lastresult=‹ -1 ›, lastoutput=‹ Échec de l'exécution de commande externe. Vérifiez qu'elle est disponible et exécutable par l'utilisateur de votre serveur PHP. Vérifiez également que la commande n'est pas protégée au niveau du shell par une couche de sécurité comme apparmor.\nÉchec de l'exécution de commande externe. Vérifiez qu'elle est disponible et exécutable par l'utilisateur de votre serveur PHP. Vérifiez également que la commande n'est pas protégée au niveau du shell par une couche de sécurité comme apparmor. ›, unitfrequency=86400, frequency=1, status=1, processing=0, pid=null, email_alert = ‹  ›, fk_user_mod = 2, note=‹ MakeLocalDatabaseDump ›, nbrun=801, maxrun=0, libname=null, test=‹ 1 › WHERE rowid=5
2023-06-19 16:04:28 DEBUG 2a01:e0a:6:b330::c66a:a378 COMMIT Transaction
2023-06-19 16:04:28 INFO 2a01:e0a:6:b330::c66a:a378 — End access to /cron/list.php

bon a priori même le fichier .err est vide il a l’air des problèmes de droits sur le disque quand le dump est lancé

Bonjour,

Et si vous lancez ça en SSH avec le user de la crontab ?

Oui mais quel est le user utilisé depuis cronlist.php ?
Normalement le user n’intervient pas le —no-namespaces…

Avez-vous testé en php7?