supprimer une tache cron avec un php appelé par cron

Discussion dans 'Administration d'un site Web' créé par migli, 25 Août 2009.

  1. migli
    migli Nouveau WRInaute
    Inscrit:
    11 Avril 2006
    Messages:
    40
    J'aime reçus:
    0
    Voilà mon souci : j'ai créé une tâche cron en utilisant un script php, en tant qu'utilisateur (pas en root).

    Cette tâche lance une page php, qui va faire des trucs, et quand elle a fini je voudrais que la tâche soit supprimée de cron.

    Problème : c'est cron qui lance le fichier php, et quand j'essaie d'effacer la tâche (à la fin du php, avec exec), j'ai un problème de droits, ou d'accès, ou je sais pas quoi.

    Je précise que si je lance le php avec un navigateur, il supprime bien la tâche.

    J'ai essayé :

    Code:
    exec('crontab -u nonutilisateur -l', $oldCrontab);
    et je reçois :
    Code:
    sh: /crontab: No such file or directory
    (j'espère être clair, je ne suis pas sûr).

    Quelqu'un peut m'aider ??

    Merci.
     
  2. migli
    migli Nouveau WRInaute
    Inscrit:
    11 Avril 2006
    Messages:
    40
    J'aime reçus:
    0
    au fait, scusez : Bonjour à tous !!
     
  3. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 572
    J'aime reçus:
    32
    Bonjour ;)

    Problème de gestion de cron, plus que de php...

    Amicalement.

    Jean-François Ortolo
     
  4. migli
    migli Nouveau WRInaute
    Inscrit:
    11 Avril 2006
    Messages:
    40
    J'aime reçus:
    0
    effectivement, il doit y avoir un problème soit d'autorisation, soit de chemin d'accès, ou autre chose dont je n'ai pas idée, mais j'ai vérifié les chmod, je n'ai pas de solution pour l'instant.
     
  5. dmathieu
    dmathieu WRInaute accro
    Inscrit:
    9 Janvier 2004
    Messages:
    5 596
    J'aime reçus:
    0
    Pourquoi supprimer ton cron ? Un cron est utilisé pour des taches répétitives. Si c'est pour exécuter une tâche une seule fois, il existe d'autres méthodes.

    Explique ce que tu veut faire parce que la, IMHO, tu ne dois pas faire les choses de la meilleure manière.
     
  6. migli
    migli Nouveau WRInaute
    Inscrit:
    11 Avril 2006
    Messages:
    40
    J'aime reçus:
    0
    il s'agit d'une newsletter à envoi différé. Lorsqu'elle est envoyée, je la supprime pour qu'elle ne reparte pas l'année d'après !
     
  7. dmathieu
    dmathieu WRInaute accro
    Inscrit:
    9 Janvier 2004
    Messages:
    5 596
    J'aime reçus:
    0
    Eh bien l'idée serait alors quelque chose comme :

    - Ton cron détecte qui a reçu la dernière newsletter. Si tout le monde l'a reçue, tu n'envoie rien.
    - Si quelqu'un n'a pas reçu la dernière newsletter, tu la lui envoie.

    Lorsque tu envoie une nouvelle newsletter, tu signale à ton cron (en ajoutant ta newsletter en base de données par exemple) qu'il y a une nouvelle newsletter.
    Il l'enverra alors à tous les abonnés.

    Un outil que tu ne pourra pas utiliser car ce n'est pas du php mais dont tu pourra t'inspirer au niveau de la conception, c'est delayed_job.
    http://github.com/tobi/delayed_job/tree/master

    Lorsqu'il y a quelque chose à faire, le cron l'exécute. Sinon il s'arrête simplement.
    Une action peut être l'envoi de cette newsletter.

    Mais ce qui est sur, c'est que supprimer un cron via le script php, c'est pas une bonne méthode architecturale.
     
  8. migli
    migli Nouveau WRInaute
    Inscrit:
    11 Avril 2006
    Messages:
    40
    J'aime reçus:
    0
    Merci beaucoup !

    J'ai déjà un script qui envoie ces newsletters en ajax dans le cas d'envoi immédiat. Par contre l'excellente idée que je n'ai pas eue avant (...!) est simplement de marquer la newsletter 'envoyée' dans la base de données. Seul inconvénient : le cron va trainer plein de taches inutiles qu'il relancera tous les ans.

    Si je ne trouve pas de solution pour supprimer les crons après execution, j'adopterai celle-ci qui en tout cas fonctionne.

    N'y a-t-il pas simplement une instruction à ajouter (style ' #!/usr/bin/...????') qui permette d'accéder au fichier cron depuis php, puis le modifier ?
     
  9. dmathieu
    dmathieu WRInaute accro
    Inscrit:
    9 Janvier 2004
    Messages:
    5 596
    J'aime reçus:
    0
    Pourquoi le cron trainerait-il des tâches inutiles ?? Une fois que ta tâche est terminée, le processus se tue tout seul.
     
  10. migli
    migli Nouveau WRInaute
    Inscrit:
    11 Avril 2006
    Messages:
    40
    J'aime reçus:
    0
    il sera relancé l'année suivante, non ? (ou quelques années si on spécifie le jour de la semaine)
     
  11. dmathieu
    dmathieu WRInaute accro
    Inscrit:
    9 Janvier 2004
    Messages:
    5 596
    J'aime reçus:
    0
    C'est un cron exécuté une seule fois de toute façon ? Pourquoi faire un cron alors ? Exécute la tâche manuellement. Ca sera plus simple.
     
  12. migli
    migli Nouveau WRInaute
    Inscrit:
    11 Avril 2006
    Messages:
    40
    J'aime reçus:
    0
    Je ne peux pas programmer en différé sans cron.
     
  13. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 974
    J'aime reçus:
    121
    Sinon tu as la solution d'utiliser ton cron pour interroger une table où se situent les dates auxquels ta newsletter doit être envoyé. Si lors du passage du CRON, une date inférieure où l'envoi n'a pas été fait (dans ce cas-là ta table doit inclure un flag dont l'état change lorsque toutes les newsletter sont parties) est présente dans la table, tu exécutés le script d'envoi.
     
  14. migli
    migli Nouveau WRInaute
    Inscrit:
    11 Avril 2006
    Messages:
    40
    J'aime reçus:
    0
    [RESOLU]Re: supprimer une tache cron avec un php appelé par cron

    Merci à tous, j'ai trouvé d'où venait le problème : il fallait simplement désactiver le safe_mode de php
     
Chargement...
Similar Threads - supprimer tache cron Forum Date
[JavaScript Array] modifier un code html sans le supprimer/recréer Développement d'un site Web ou d'une appli mobile 20 Juin 2022
Impossible de supprimer une page Facebook Facebook 15 Juin 2022
comment supprimer articles fantômes référencés Problèmes de référencement spécifiques à vos sites 12 Mai 2022
Unused CSS et outils pour supprimer feuilles de style inutilisées Développement d'un site Web ou d'une appli mobile 27 Avril 2022
Pénalité Penguin. Doit-on supprimer les backlinks toxiques en 1 fois ? Netlinking, backlinks, liens et redirections 15 Avril 2022
comment supprimer définitivement une page zombie ? Problèmes de référencement spécifiques à vos sites 5 Décembre 2021
Supprimer landing page homepage, rediriger vers page réelle Problèmes de référencement spécifiques à vos sites 28 Novembre 2021
Comment supprimer un onglet personnalisé (app) sur Facebook Facebook 6 Septembre 2021
Désindexer ou supprimer ? Débuter en référencement 25 Mai 2021
Supprimer événement groupe FB crée par un membre Facebook 7 Avril 2021
Comment supprimer un Pixels Facebook ? Facebook 19 Mars 2021
Supprimer la version en cache de dizaines de PDF Crawl et indexation Google, sitemaps 11 Janvier 2021
Supprimer son compte google maps pour cause d'avis négatifs YouTube, Google Images et Google Maps 10 Décembre 2020
Supprimer mon site de Similarweb ? Ou modifier les données ? Administration d'un site Web 26 Novembre 2020
RGPD : faire supprimer par Facebook l'ensemble de mes informations Droit du web (juridique, fiscalité...) 2 Novembre 2020
Search Console Supprimer des doublons Crawl et indexation Google, sitemaps 26 Octobre 2020
Contenu Obsolète supprimer ou noindex ? Débuter en référencement 16 Octobre 2020
Supprimer pages indexées Crawl et indexation Google, sitemaps 11 Octobre 2020
Supprimer des pages en moasse (avec l'accent de Gad) Crawl et indexation Google, sitemaps 5 Octobre 2020
Galère pour supprimer index.php URL Rewriting et .htaccess 12 Août 2020