Forum Linux.débutant CRON/php

Posté par  .
Étiquettes : aucune
0
18
mai
2006
Bonjour,

je veux utiliser crontab pour me permettre d'executer un lien php qui fait une sauvegarde de ma base de donnees, mais cron ne me l'execute pas...

Dans crontab j'ai ajoute :
#!/usr/bin/php
0,37,40 * * * * https://localhost/sauvegarde.php&ok=true

mais sans succes ...


Merci d'avance...
  • # Et sinon ...

    Posté par  . Évalué à 3.

    juste lancer la sauvegarde le la base sans passer par PHP et un serveur https ? ça serait pas un chouille plus simple ?

    regarde du coté de mysqldump ... (je suppose que ta base est une base mysql ...)

    et elle change bcp entre la minute 37 et la minute 40 pour lancer autant de sauvegardes ?

    Dam
  • # Mmmmm

    Posté par  (site web personnel) . Évalué à 4.

    Je crois que tu n'as pas compris le fonctionnement de la crontab ou de PHP.

    Je te conseille de virer #!usr/bin/php de ta crontab et de mettre
    0,37,40 * * * * wget https://localhost/sauvegarde.php&ok=true
    à la place.

    A noter que ton url est étrange : il ya un "&" mais il n'y a qu'un paramètre.

    L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire

  • # php client

    Posté par  . Évalué à 2.

    Pourquoi ne pas utiliser le client php (c'est apparamment ce que tu semblais vouloir faire) :

    0,37,40 * * * * /usr/bin/php mon_path_qui_va_bien/sauvegarde.php
  • # Autre probleme...

    Posté par  . Évalué à 1.

    Merci :)
    j'ai bien reussi a m'en sortir, il fallait utiliser lynx et mettre ? a la place de &
    Donc ma ligne donne :
    0,20,40 * * * * lynx https://localhost/sauvegarde.php?ok=true

    Maintenant, je souhaite rentre les informations concernant le jour, minute, heure...... a travers un formulaire php...
    Je recupere les informations que je met dans une variable puis je me sert de la fonction fwrite de php...

    Mais il me met une erreur :
    Warning: fopen(/var/spool/cron/crontabs/root): failed to open stream: Permission denied in /var/www/lpmo.biblio/sauvegarde/sauvegardeConfig.php on line 529

    J'ai pourtant mis tout les droits sur le fichier root. Est ce qu'on peut ecrire directement dans le cron ou il faut forcement passer par la console ?

    Est ce que quelqu'un aurait une idee ?

    Merci d'avance ...

    (ma fonction fopen est : fopen("/var/spool/cron/crontabs/root","a");
    • [^] # Re: Autre probleme...

      Posté par  . Évalué à 1.

      Le propriétaire de ton script php n'est pas root, même si tu le lances depuis la crontab de root.
      Quand tu appelles lynx, il fait une requête sur ton serveur web (on va dire Apache) qui tourne avec l'utilisateur "apache" en général. Ton script s'exécute donc avec les droits de cet utilisateur.
      Tu ne devrais pas essayer de modifier la crontab de root avec un script php. Si tu n'as pas le choix, fais un appel système (system(), exec(), etc.) qui fera un "echo 0,20,40 * * * * commande | crontab -u root". Mais pour cela, ton script devra tourner avec les droits root. Et comme tu as l'air de débuter, mon conseil : NE LE FAIS PAS. Si tu veux le faire quand même, ne lance pas ton script depuis le serveur web, mais directement avec la commande php (/usr/bin/php ou /usr/local/bin/php).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.