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
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();
?>
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.
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[*]}
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
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
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.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique