Partage
  • Partager sur Facebook
  • Partager sur Twitter

crontab Php Serveur Ubuntu 22.04

Sujet résolu
    23 juin 2022 à 15:08:07

    Bonjour,

    Je cherche à aouter un crontab de façon à ce que mon script php s'exécute de façon périodique (image aléatoire) sur mon serveur Linux.Cependant après avoir suivant les instructions, je n'arrive pas à avoir mon crontab d'effectif. 

    Les modifications ont été faites à partir de la commande suivante : crontab -u www-data -e (également depuis crontab -e)

    Avec cette ligne d'ajouter :  */30 * * * * /usr/bin/php /chemindemonscript 

    Aurais-je oublier une étape avant ?

    Merci.

    Bonne journée.

    Alex

    • Partager sur Facebook
    • Partager sur Twitter
      23 juin 2022 à 17:23:46

      il es tlong le script ? tu peux nous le montrer ?

      "image aléatoire", mais où ?

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        24 juin 2022 à 8:35:39

        dantonq a écrit:

        il es tlong le script ? tu peux nous le montrer ?

        "image aléatoire", mais où ?


        L'idée c'est de générer une image aléatoirement provenant d'un dossier upload après les avoir ajouté sur le serveur. Donc si le script peut s'effectuer périodiquement afin de ne pas avoir la même image..

        Cron Script : 

        <?php
        
        $dossier = './upload/';
        
        $handle = dir($dossier);
        
        $i = 0;
        while (false !== ($fichier = $handle->read())) {
        	if (is_file($dossier . $fichier)) {
        		$i++;
        		$fichiers[] = $dossier . $fichier;
        	}
        }
        
        if ($i > 1) {
        
        	// On recupere le flyer en cours pour le comparer au prochain a afficher
        	do {
        		$flyer = "./flyer.jpg";
        
        		// On compare le flyer actuel au nouveau choisi aléatoirement
        		$aleatoire = rand(0, count($fichiers) - 1);
        		$retenu = $fichiers[$aleatoire];
        		var_dump($retenu);
        	} while (filesize($flyer) == filesize($retenu));
        
        	// on copie le nouveau flyer retenu vers l'image accessible depuis le web
        	copy($retenu, $flyer);
        }
        
        $handle->close();
        
        
        ?>



        • Partager sur Facebook
        • Partager sur Twitter
          24 juin 2022 à 8:44:53

          c'est bizarre de faire ça ne php, c'est plutôt un boulot pour le shell.

          tu devrais indiquer le chemin absolu des différents fichiers (fichier et répertoire) au lieu de chemins relatifs.

          • Partager sur Facebook
          • Partager sur Twitter

          Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

            24 juin 2022 à 8:49:27

            dantonq a écrit:

            c'est bizarre de faire ça ne php, c'est plutôt un boulot pour le shell.

            tu devrais indiquer le chemin absolu des différents fichiers (fichier et répertoire) au lieu de chemins relatifs.


            Comment ça ? Si c'est bizarre alors je suis preneur d'une autre solution. ça me paraissait assez pratique d'ajouter un crontab sur le serveur pour piloter certains scripts.
            • Partager sur Facebook
            • Partager sur Twitter
              24 juin 2022 à 10:52:11

              exécuter des scripts régulièrement se fait en effet avec crontab,
              mais c'est le script que j'aurais écrit en shell.
              d'abord, parce que c'est le langage que je pratique, et parce que c'est le langage naturel pour ces tâches "d'administration".

              en gros, et sans tests :

              #!/bin/bash
              
              dossier=/chemin/source
              for f in "$dossier"/*; do test -f "$f" && listeFic+=( "$f" ); done
              randomFile=${listFic[RANDOM%${#llistFic[*]}



              • Partager sur Facebook
              • Partager sur Twitter

              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                27 juin 2022 à 9:43:26

                Cela semble désormais fonctionner en utilisant plutôt un chemin différent pour le php cad celui ci : /usr/lib/php suivant du cheminduscript

                • Partager sur Facebook
                • Partager sur Twitter

                crontab Php Serveur Ubuntu 22.04

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown