Cron

Cron

par ahmed baaziz,
Nombre de réponses : 2

Bonjour à tous;

Je travaille sous linux ubuntu 12.04 et j'ai installé moodle 2.7 ,maintenant, je veux exécuter un script cron moodle , le but est  de tester le nombre d'enregistrements dans la table "mdl_log", si ce nombre dépasse 2000, je dois copier tous les enregistrements à partir de 2001 dans une autre table appelée par exemple mdl_log2,puis je supprime ces derniers dans la table mdl_log et tous ça je veux qu'il se fasse automatiquement (via le cron).

Avant ,je le fait manuellement , c'est à dire:

1- J'affiche ma table mdl_log ;

2- Je copie la structure vers une autre table que j'ai  nommée mdl_log1;

3-J'execute la requête "INSERT INTO 'moodle'.'mdl_log1'(SELECT* FROM  'moodle'.'mdl_log' WHERE 'mdl_log'.id>=2000; P { margin-bottom: 0.21cm; }

4-Puis j'exécute la requête DELETE FROM `moodle`.`mdl_logemiss` WHERE `mdl_logemiss`.`id` >= 2000;
Je m'excuse , car je ne dois pas poser ce genre de question dans le forum moodle , mais franchement, je suis bloqué et je ne sais pas comment faire car je suis débutant.

Quelquun pourrait me donner les étapes SVP.

Merci d'avance.

Moyenne des évaluations  -
En réponse à ahmed baaziz

Re: Cron

par Erwan Gallenne,
Avatar Développeurs de plugins

Bonjour Ahmed,


Il faut créer un script PHP qui exécute ces requêtes mais votre méthode n'est pas bonne car le champ ID de la table mdl_log est auto incrémenté.

Il faudrait plutôt faire une recherche sur le nombre d'enregistrement depuis votre dernière exécution (en utilisant le champ time) puis transférer ces enregistrements. La création de la table mdl_log1 n'est à faire qu'une seule fois.

Je vous conseille de faire un script PHP, de le tester correctement et ensuite de l'exécuter périodiquement par cron en exécutant la commande suivante :

crontab -e


Bon courage


Erwan