IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Déplacer des fichiers via une tache CRON


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Par défaut Déplacer des fichiers via une tache CRON
    Bonjour à toutes et à tous,

    Voici mon problème
    Je gère un club photo.
    Pour notre activité, les membres peuvent déposer leurs photos via un client FTP pré programmé qui pointe dans un dossier bien précis (incoming) et les utilisateurs peuvent déposer leurs photos en fonction de l'activité prévue.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public_ftp
    -incomming
    --Fallet_2019
    --Interclub_2019
    --Lundis
    ---Analyse
    ---Notation
    ---Test
    ---Retouche
    -collecte
    --Fallet_2019
    --Interclub_2019
    --Lundis
    ---Analyse
    ---Notation
    ---Test
    ---Retouche
    J'aurais besoin d'un petit script qui sera lancé par une tache CRON exécutée toutes les 5 minutes et qui se chargera de déplacer les fichiers présents dans l'arboresence <incoming> vers l'arobescence <collecte> qui elle sera non accessible par les membres

    L'arborescence entre <incoming> et <collecte> est identique

    Améliorations possibles
    - création des sous-dossiers dans <collecte> s'ils n'existent pas
    - lancer la tache CRON a chaque apparition de fichier dans <incoming> (je ne sais pas si cela est possible via une tâche CRON)

    Par avance merci pour votre aide

    PS : je n'y connais absolument rien en programmation batch Linux, donc une solution clé en main serait vraiment la bienvenue !

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 292
    Par défaut
    Bonjour

    Ce matin, je suis allé à la boulangerie.
    C'est vrai qu'à la maison, j'ai de la farine, du sel, de l'eau et de la levure de boulanger.
    Mais j'ai dit à la boulangère que me fournir gratuitement une baguette tradition clé-en-main serait bienvenu.
    Elle m'a jeté à coup de pied aux fesses.

    Je suis alors allé chez mon garagiste.
    C'est vrai qu'à la maison, j'ai des tournevis, des clés à molette, des chiffons, etc.
    Mais j'ai dit à mon garagiste que me fournir gratuitement une réparation clé-en-main serait bienvenu.
    Il m'a effectivement remis la clé dans la main avant de me botter les fesses.

    On peut payer les gens pour un service.
    On peut le faire soi-même et être aidé gratos.
    Mais demander d'être servi gratuitement parce que Môssieur Sa Majesté Sérénissime à la flemme de se bouger le tronc, c'est inélégant.
    Et je me retiens.



    Même pas besoin de script.

    En fin de fichier, ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Moulinette toutes les 5 minutes
    */5 * * * * mv ~/dossiers/ftp/* ~/dossiers/recup
    Enregistrer et quitter.

    Si tu veux quelque chose de plus élaboré, tu crées un fichier texte (plat) auquel tu donnes les droits d'exécution.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    cat >mon_script.bash <<EOF
    #!/bin/bash
     
    mv ~/dossiers/ftp/* ~/dossiers/recup
    EOF
    chmod +x mon_script.bash
    Et rebelote :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Moulinette toutes les 5 minutes
    */5 * * * * ~/dossiers/mon_script.bash

  3. #3
    Membre confirmé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Par défaut
    Bonjour
    Tout d'abord merci pour la réponse.

    Ensuite même si j'ai compris le fond de votre message, mon but n'était pas de passer au dessus de tout mais simplement de pouvoir mettre en place cette demande sans avoir à me mettre à la programmation Linux par faute de temps
    Donc encore mille merci pour cette réponse précise et concise

  4. #4
    Membre confirmé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Par défaut
    La réponse proposée ne fonctionne pas du moins pas comme je le souhaiterais je m'explique.

    Toute l'arboresence de <incoming> est déplacée vers <collecte> : très bien en soit mais elle a complètement disparu du répertoire de départ.

    Il ne faudrait déplacer que les fichiers contenus dnas l'arborescence <incoming> et permettre également un écrasement des fichiers existants

  5. #5
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 292
    Par défaut
    A ce moment-là, le verbe n'est pas "déplacer" mais "copier". Non ?
    Et la commande cp, avec l'option -f pour forcer et -R pour copier les dossiers récursivement.
    Pour en savoir plus :
    Quand à l'écrasement, cela paraît une bonne idée au début ... Mais cela signifie aussi que seul le dernier état compte.
    En gros, si j'écrase tous les fichiers du ftp par des fichiers vides, ta routine de sauvegarde a tout perdu. Séance du jour et de toutes les autres séances.
    Es-tu sûr de vouloir faire cela ?

  6. #6
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 292
    Par défaut
    Avant que tu réinventes et fabriques une usine-à-gaz, renseignes-toi sur rsync.

    https://doc.ubuntu-fr.org/rsync

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 660
    Par défaut
    je préférerais utiliser rsync.
    deux fois :
    • sauvegarde de collecte
    • sauvegarde de incoming vers collecte, en enlevant les fichiers source (cf. man rsync parce qu'à un moment ou un autre il faudra RTFM!)
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/05/2016, 15h22
  2. [Batch] Déplacer des fichiers ayant une chaine de caractère précise
    Par SkitsVicious dans le forum Scripts/Batch
    Réponses: 18
    Dernier message: 11/05/2016, 13h27
  3. Compresser des fichiers via une connexion HTTP
    Par cisnake dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 27/01/2014, 22h59
  4. [1.x] envoi d'email via une tache cron
    Par erictomcat dans le forum Symfony
    Réponses: 2
    Dernier message: 17/05/2011, 20h18
  5. Réponses: 3
    Dernier message: 27/09/2008, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo