Décrivez ici votre problème ou ce que vous cherchez à faire.

Bonjour,
je tourne en rond et je calle pour copier/coller le contenu d'un répertoire vers un autre via une tache cron.
Pour la tache cron, ça marche impec mais pour les chemins vers les répertoires, je sèche.
Déjà, dois-je faire un script php pour mon copier/coller? --> ça, je sais faire
Dois-je simplement mettre une connmmande linux de copier/coller? --> ça, je ne sais pas faire
Voici mon arborescence:

  • Racine root
  • home/repertoireA
  • var/www/domaine/html/repertoireB

Bon, j'ai quand-même essayé pas mal de choses dont ça (ma commande cron):
/usr/bin/php /var/www/domaine/html/taches-cron/transfert.php

Voici le code php que j'utilise et que j'ai mis dans "var/www/domaine/html/taches-cron/" :
``
$origine = "../../../../../../home/repertoireA/";
$destination = "var/www/domaine/html/repertoireB/";

   function CopyDir($origine, $destination) {
    $test = scandir($origine);

    $file = 0;
    $file_tot = 0;

    foreach($test as $val) {
        if($val!="." && $val!="..") {
            if(is_dir($origine."/".$val)) {
                IsDir_or_CreateIt($destination."/".$val);
                CopyDir($origine."/".$val, $destination."/".$val);

            } else {
                $file_tot++;
                if(copy($origine."/".$val, $destination."/".$val)) {
                    $file++;
                } else {
                    if(!file_exists($origine."/".$val)) {
                        echo $origine."/".$val;
                    }
                }
            }
        }
    }
    return true;
}

``
Ce que je veux

J'aimerais copier le contenu de "repertoireA" vers "repertoireB".

Ce que j'obtiens

PHP Warning: copy(var/www/domaine/html/repertoireA/document1.csv): Failed to open stream: No such file or directory in /var/www/domaine/html/taches-cron/transfert.php on line 27
La ligne 27:
if(copy($origine."/".$val, $destination."/".$val)) {
Je ne sais plus par quel bout m'y prendre, pouvez-vous me donner un coup de pouce?

Merci beaucoup.
Olivier

2 réponses


Pourquoi tu ne fais tout simplement pas un lien symbolique ?
ln -s /path/to/source /path/to/dest

Ca aura pour but de toujours être identiques des deux côtés.

Hexa
Auteur

Bonjour Karelylo,
je m'en suis sorti en appelant un script en .sh et mon transfert se passe très bien.

Maintenant, pour traiter mes données, j'ai un script php qui fonctionne à merveille quand tu l'execute via un navigateur en mettant son chemin dans l'url.
Mais il ne veut pas s'excuter depuis une tâche cron.
C'est à n'y rien comprendre car je n'ai aucune erreur. Ni dans error.log, ni dans le xhr.
Connais-tu des tutos où je pourrais apprendre la marche à suivre pour executer un script php avec une tâche cron?