syntaxe pour copier/coller

Par Hexa, il y a 1 an


Outils Linux

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:

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

Kareylo, il y a 1 an

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, il y a 1 an

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?