Mon cron-job ne fonctionne plus
Résolu/Fermé
flexi2202
Messages postés
3799
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
16 mai 2024
-
3 août 2021 à 16:39
flexi2202 Messages postés 3799 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 - 4 août 2021 à 08:47
flexi2202 Messages postés 3799 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 16 mai 2024 - 4 août 2021 à 08:47
A voir également:
- Mon cron-job ne fonctionne plus
- Z-cron - Télécharger - Optimisation
- Easy job - Télécharger - Emploi & CV
- Print job manager - Télécharger - Suite bureautique
- Visual cron - Télécharger - Divers Utilitaires
- Cron toutes les 5 minutes ✓ - Forum Redhat
11 réponses
Utilisateur anonyme
3 août 2021 à 16:51
3 août 2021 à 16:51
B'jour,
On ira pas loin si on ne sait pas à quoi ressemble ta cron.
On ira pas loin si on ne sait pas à quoi ressemble ta cron.
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
3 août 2021 à 16:58
3 août 2021 à 16:58
Bonjour,
Et que t'affiche le bouton "Afficher les résultats" :
https://www.hostinger.fr/tutoriels/wp-content/uploads/sites/9/2017/05/supprimer-cron-hostinger.png
Et comme le dit Pyraah .. si tu ne nous montres pas le code de ta cron ( le script ( php je suppose) que tu essayes d'exécuter).. impossible de t'en dire plus.
( à part, pense à activer l'affichage des erreurs php dans ton code, et places de echo / var_dump .. pour essayer de voir ce que fait (ou non) ton script )
Et que t'affiche le bouton "Afficher les résultats" :
https://www.hostinger.fr/tutoriels/wp-content/uploads/sites/9/2017/05/supprimer-cron-hostinger.png
Et comme le dit Pyraah .. si tu ne nous montres pas le code de ta cron ( le script ( php je suppose) que tu essayes d'exécuter).. impossible de t'en dire plus.
( à part, pense à activer l'affichage des erreurs php dans ton code, et places de echo / var_dump .. pour essayer de voir ce que fait (ou non) ton script )
Utilisateur anonyme
Modifié le 3 août 2021 à 17:21
Modifié le 3 août 2021 à 17:21
C'est ta cron que j'ai demandé à voir, pas le code PHP :).
Edit : je laisse Jordane et Pitet prendre le relais, n'étant pas certain de pouvoir répondre ce soir :).
Edit : je laisse Jordane et Pitet prendre le relais, n'étant pas certain de pouvoir répondre ce soir :).
flexi2202
Messages postés
3799
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
16 mai 2024
187
Modifié le 3 août 2021 à 17:20
Modifié le 3 août 2021 à 17:20
bonjour merci pour l aide
le voici
le voici
<?php /** * Sauvegarde MySQL * * @package BackupMySQL * @author Benoit Asselin <contact@ab-d.fr> * @version backup.php, 2013/01/13 * @link http://www.ab-d.fr/ * */ error_reporting(E_ALL); ini_set('display_errors', true); /** * Sauvegarde MySQL */ class BackupMySQL extends mysqli { /** * Dossier des fichiers de sauvegardes * @var string */ protected $dossier; /** * Nom du fichier * @var string */ protected $nom_fichier; /** * Ressource du fichier GZip * @var ressource */ protected $gz_fichier; /** * Constructeur * @param array $options */ public function __construct($options = array()) { $default = array( 'host' => ini_get('mysqli.default_host'), 'username' => ini_get('mysqli.default_user'), 'passwd' => ini_get('mysqli.default_pw'), 'dbname' => '', 'port' => ini_get('mysqli.default_port'), 'socket' => ini_get('mysqli.default_socket'), // autres options 'dossier' => 'phil/backup/', 'nbr_fichiers' => 5, 'nom_fichier' => 'backup' ); $options = array_merge($default, $options); extract($options); // Connexion de la connexion DB @parent::__construct($host, $username, $passwd, $dbname, $port, $socket); if($this->connect_error) { $this->message('Erreur de connexion (' . $this->connect_errno . ') '. $this->connect_error); return; } // Controle du dossier $this->dossier = $dossier; if(!is_dir($this->dossier)) { $this->message('Erreur de dossier "' . htmlspecialchars($this->dossier) . '"'); return; } // Controle du fichier $this->nom_fichier = $nom_fichier . date('Ymd-His') . '.sql.gz'; $this->gz_fichier = @gzopen($this->dossier . $this->nom_fichier, 'w'); if(!$this->gz_fichier) { $this->message('Erreur de fichier "' . htmlspecialchars($this->nom_fichier) . '"'); return; } // Demarrage du traitement $this->sauvegarder(); $this->purger_fichiers($nbr_fichiers); } /** * Message d'information ( commenter le "echo" pour rendre le script invisible ) * @param string $message HTML */ protected function message($message = ' ') { echo '<p style="padding:0; margin:1px 10px; font-family:sans-serif;">'. $message .'</p>'; file_put_contents( __DIR__ . 'log_'.date("Y-m-d").'.log', date("Y-m-d H:i:s") . ' - ' . $message . PHP_EOL, FILE_APPEND); } /** * Protection des quot SQL * @param string $string * @return string */ protected function insert_clean($string) { // Ne pas changer l'ordre du tableau !!! $s1 = array( "\\" , "'" , "\r", "\n", ); $s2 = array( "\\\\" , "''" , '\r', '\n', ); return str_replace($s1, $s2, $string); } /** * Sauvegarder les tables */ protected function sauvegarder(){ $this->message('Sauvegarde...'); $sql = '--' ."\n"; $sql .= '-- '. $this->nom_fichier ."\n"; gzwrite($this->gz_fichier, $sql); // Liste les tables $result_tables = $this->query('SHOW TABLE STATUS'); if($result_tables && $result_tables->num_rows) { while($obj_table = $result_tables->fetch_object()) { $this->message('- ' . htmlspecialchars($obj_table->{'Name'})); // DROP ... $sql = "\n\n"; $sql .= 'DROP TABLE IF EXISTS `'. $obj_table->{'Name'} .'`' .";\n"; // CREATE ... $result_create = $this->query('SHOW CREATE TABLE `'. $obj_table->{'Name'} .'`'); if($result_create && $result_create->num_rows) { $obj_create = $result_create->fetch_object(); $sql .= $obj_create->{'Create Table'} .";\n"; $result_create->free_result(); } // INSERT ... $result_insert = $this->query('SELECT * FROM `'. $obj_table->{'Name'} .'`'); if($result_insert && $result_insert->num_rows) { $sql .= "\n"; while($obj_insert = $result_insert->fetch_object()) { $virgule = false; $sql .= 'INSERT INTO `'. $obj_table->{'Name'} .'` VALUES ('; foreach($obj_insert as $val) { $sql .= ($virgule ? ',' : ''); if(is_null($val)) { $sql .= 'NULL'; } else { $sql .= '\''. $this->insert_clean($val) . '\''; } $virgule = true; } // for $sql .= ')' .";\n"; } // while $result_insert->free_result(); } gzwrite($this->gz_fichier, $sql); } // while $result_tables->free_result(); } gzclose($this->gz_fichier); $this->message('<strong style="color:green;">' . htmlspecialchars($this->nom_fichier) . '</strong>'); $this->message('Sauvegarde terminée !'); } /** * Purger les anciens fichiers * @param int $nbr_fichiers_max Nombre maximum de sauvegardes */ protected function purger_fichiers($nbr_fichiers_max) { $this->message(); $this->message('Purge des anciens fichiers...'); $fichiers = array(); // On recupere le nom des fichiers gz if($dossier = dir($this->dossier)) { while(false !== ($fichier = $dossier->read())) { if($fichier != '.' && $fichier != '..') { if(is_dir($this->dossier . $fichier)) { // Ceci est un dossier ( et non un fichier ) continue; } else { // On ne prend que les fichiers se terminant par ".gz" if(preg_match('/\.gz$/i', $fichier)) { $fichiers[] = $fichier; } } } } // while $dossier->close(); } // On supprime les anciens fichiers $nbr_fichiers_total = count($fichiers); if($nbr_fichiers_total >= $nbr_fichiers_max) { // Inverser l'ordre des fichiers gz pour ne pas supprimer les derniers fichiers rsort($fichiers); // Suppression... for($i = $nbr_fichiers_max; $i < $nbr_fichiers_total; $i++) { $this->message('<strong style="color:red;">' . htmlspecialchars($fichiers[$i]) . '</strong>'); unlink($this->dossier . $fichiers[$i]); } } $this->message('Purge terminée !'); } } // Instance de la classe ( a copier autant que necessaire, mais attention au timeout ) // Rq: pour les parametres, reprendre une ou plusieurs cles de $default ( dans la methode __construct() ) new BackupMySQL(array( 'username' => 'u4', 'passwd' => '', 'dbname' => 'u4' )); //new BackupMySQL(array( // 'username' => 'root', // 'passwd' => 'root', // 'dbname' => 'mabase', // 'dossier' => './dossier2/' // )); ?>
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
524
3 août 2021 à 17:15
3 août 2021 à 17:15
Bonjour,
A priori ton code crée un fichier log_<date>.log dans le même dossier où est situé le fichier php. Il y t-il une erreur dans ce fichier log ?
Au passage, pense à masquer/modifier l'utilisateur et le mot de passe mysql sur le code posté sur un forum si ce n'est pas déjà le cas.
A priori ton code crée un fichier log_<date>.log dans le même dossier où est situé le fichier php. Il y t-il une erreur dans ce fichier log ?
Au passage, pense à masquer/modifier l'utilisateur et le mot de passe mysql sur le code posté sur un forum si ce n'est pas déjà le cas.
flexi2202
Messages postés
3799
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
16 mai 2024
187
>
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
3 août 2021 à 17:22
3 août 2021 à 17:22
bonjour Pitet
merci pour la réponse en effet il crée un log quand tout c est bien passe
mais comme rien ne se passe je n ai pas de log
merci pour la réponse en effet il crée un log quand tout c est bien passe
mais comme rien ne se passe je n ai pas de log
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
flexi2202
Messages postés
3799
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
16 mai 2024
187
3 août 2021 à 17:07
3 août 2021 à 17:07
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
3 août 2021 à 17:22
3 août 2021 à 17:22
ben visiblement il ne trouve pas le fichier ...
Comment as tu créés ta cron ?
Quel chemin à tu mis pour le fichier à exécuter ?
Où est-il placé dans l'arborescence de ton site ?
Comment as tu créés ta cron ?
Quel chemin à tu mis pour le fichier à exécuter ?
Où est-il placé dans l'arborescence de ton site ?
flexi2202
Messages postés
3799
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
16 mai 2024
187
>
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
3 août 2021 à 17:34
3 août 2021 à 17:34
oui jordane c est bien ça il ne trouve pas le fichier
voici mon dernier chemin en essai
mais je dois attendre 30 mm pour savoir si cela fonctionne a présent
/usr/bin/php /home/u43/Domains/pecheperle.be/public_html/backup.php
et le fichier backup.php
est placé a la racine de mon domaine
voici mon dernier chemin en essai
mais je dois attendre 30 mm pour savoir si cela fonctionne a présent
/usr/bin/php /home/u43/Domains/pecheperle.be/public_html/backup.php
et le fichier backup.php
est placé a la racine de mon domaine
flexi2202
Messages postés
3799
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
16 mai 2024
187
3 août 2021 à 17:22
3 août 2021 à 17:22
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
3 août 2021 à 17:27
3 août 2021 à 17:27
et c'est lequel que tu nous as montré ( au niveau de la fenêtre résultat ) ?
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
4 689
>
jordane45
Messages postés
38242
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 octobre 2024
3 août 2021 à 17:28
3 août 2021 à 17:28
Si c'est le dernier de la liste .. il me semble normal qu'il ne fonctionne pas...
Regarde comment sont fais les autres...
Regarde comment sont fais les autres...
flexi2202
Messages postés
3799
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
16 mai 2024
187
Modifié le 3 août 2021 à 18:20
Modifié le 3 août 2021 à 18:20
merci de l aide
voila cela ne fonctionne toujours pas
aucun de la liste ne fonctionne
en fait ils s affichent tous le même résultat
a savoir qu il ne trouve pas le fichier
voila cela ne fonctionne toujours pas
aucun de la liste ne fonctionne
en fait ils s affichent tous le même résultat
a savoir qu il ne trouve pas le fichier
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
524
3 août 2021 à 18:43
3 août 2021 à 18:43
La constante __FILE__ en php contient le chemin du script exécuté.
Tu peux donc par exemple afficher cette constante au début de ton fichier backup.php :
Puis appeler ce fichier dans ton navigateur pour vérifier le chemin.
Pense bien sûr à supprimer ces deux nouvelles lignes pour tester à nouveau la tache cron avec le bon chemin.
Tu peux donc par exemple afficher cette constante au début de ton fichier backup.php :
<?php /** * Sauvegarde MySQL */ error_reporting(E_ALL); ini_set('display_errors', true); echo __FILE__; exit();
Puis appeler ce fichier dans ton navigateur pour vérifier le chemin.
Pense bien sûr à supprimer ces deux nouvelles lignes pour tester à nouveau la tache cron avec le bon chemin.
flexi2202
Messages postés
3799
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
16 mai 2024
187
Modifié le 3 août 2021 à 20:34
Modifié le 3 août 2021 à 20:34
merci pour le code
je viens d essayer de mettre le chemin que j ai obtenu comme tache de cron
mais cela ne fonctionne toujours pas
/home/u43/domains/pecheperle.be/public_html/backup.php
et le resultaat comme message
est ceci
timeout: failed to run command ‘/home/u435/domains/pecheperle.be/public_html/backup.php’: Permission denied
apparemment il refuse l accès au dossier
je viens d essayer de mettre le chemin que j ai obtenu comme tache de cron
mais cela ne fonctionne toujours pas
/home/u43/domains/pecheperle.be/public_html/backup.php
et le resultaat comme message
est ceci
timeout: failed to run command ‘/home/u435/domains/pecheperle.be/public_html/backup.php’: Permission denied
apparemment il refuse l accès au dossier
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
524
3 août 2021 à 21:01
3 août 2021 à 21:01
Dans la commande de la tâche cron il ne faut pas mettre uniquement le chemin, il faut appeler l'exécutable php (dans le dossier /usr/bin) puis renseigner le chemin php à exécuter.
La syntaxe de ton dernier essai était correct, la seule différence sur le chemin semble être l'absence de majuscule sur le dossier domains. La commande de la tâche cron devrait donc être :
La syntaxe de ton dernier essai était correct, la seule différence sur le chemin semble être l'absence de majuscule sur le dossier domains. La commande de la tâche cron devrait donc être :
/usr/bin/php /home/u43/domains/pecheperle.be/public_html/backup.php
flexi2202
Messages postés
3799
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
16 mai 2024
187
Modifié le 3 août 2021 à 22:38
Modifié le 3 août 2021 à 22:38
ah je pense que on est sur la bonne voie , merci pour cette modification
voici le nouveau message d erreur
je dois peut être mettre el dossier de récupération dans le même endroit que le fichier backup.php
voila je viens d essayer de mettre le dossier backup a la racine
en changeant bien évidement le chemin dans backup .php
mais toujours ce message
j ai essaye aussi en mettant le chemin complet
/usr/bin/php /home/u43/domains/pecheperle.be/public_html/
pourtant si je lance le backup en manuel cela fonctionne
voici le nouveau message d erreur
<p style="padding:0; margin:1px 10px; font-family:sans-serif;">Erreur de dossier "phil/backup/"</p>
je dois peut être mettre el dossier de récupération dans le même endroit que le fichier backup.php
voila je viens d essayer de mettre le dossier backup a la racine
en changeant bien évidement le chemin dans backup .php
mais toujours ce message
<p style="padding:0; margin:1px 10px; font-family:sans-serif;">Erreur de dossier "backup/"</p>
j ai essaye aussi en mettant le chemin complet
/usr/bin/php /home/u43/domains/pecheperle.be/public_html/
pourtant si je lance le backup en manuel cela fonctionne
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
524
4 août 2021 à 08:15
4 août 2021 à 08:15
En effet le script php est désormais bien exécuté.
Concernant le dossier, est-ce que tu as créé un dossier backup dans le dossier public_html ?
Si oui, essaye de renseigner le chemin absolu vers ce dossier dans l'option dossier :
Concernant le dossier, est-ce que tu as créé un dossier backup dans le dossier public_html ?
Si oui, essaye de renseigner le chemin absolu vers ce dossier dans l'option dossier :
new BackupMySQL(array( 'username' => 'root', 'passwd' => '123456', 'dbname' => 'mabase', 'dossier' => '/home/u43/domains/pecheperle.be/public_html/backup/' ));
flexi2202
Messages postés
3799
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
16 mai 2024
187
4 août 2021 à 08:39
4 août 2021 à 08:39
bonjour Pitet
merci pour la réponse et la solution
note bien qu hier j avais fait un essai avec le chemin absolu et cela n avait pas fonctionner
a présent tout semble fonctionner a merveille
j attends encore un peu avant d indiquer en résolu
encore mille fois merci
tu m enlèves une fameuse aiguille du pied
merci pour la réponse et la solution
note bien qu hier j avais fait un essai avec le chemin absolu et cela n avait pas fonctionner
a présent tout semble fonctionner a merveille
j attends encore un peu avant d indiquer en résolu
encore mille fois merci
tu m enlèves une fameuse aiguille du pied
flexi2202
Messages postés
3799
Date d'inscription
lundi 14 mars 2011
Statut
Membre
Dernière intervention
16 mai 2024
187
4 août 2021 à 08:47
4 août 2021 à 08:47
je confirme cela fonctionne
merci et bonne journée
merci et bonne journée