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 :

Crontab: commande qui n'a pas l'air de s'executer


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 130
    Par défaut Crontab: commande qui n'a pas l'air de s'executer
    Bonjour,

    Je suis débutant
    Je cherche à executer une ligne de commande dans une table de cron.
    J'ai différents répertoires "Histo" dans plusieurs répertoire avec les arborescence ci-dessous (j'éspère être assez clair):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    /data/appli/ftp/8/8452/Histo
    /data/appli/ftp/8/1200/Histo
    /data/appli/ftp/64/3/Histo
    /data/appli/ftp/64/18/Histo
    ...
    Dans ces répertoires "Histo", j'ai plein de fichier archivés que je souhaiterai effacé lorsqu'il sont plus vieux de 7 jours, pour tester j'ai paramétré la ligne pour qu'elle s'execute toutes les 5mn et j'ai essayé de créer un log (/data/appli/log/cron.log) pour garder une trace de ce qui se passe

    Pour cela j'ai édité la table avec la commande cron -e.

    J'y ai ajouté la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    */5 * * * * find /data/appli/ftp -type f -ctime +7 -wholename "*/Histo/*" -exec rm {} \+  > /data/appli/log/cron.log
    Lorsque je regarde le fichier /var/log/syslog , j'ai l'impression que la commande est executé:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dec 21 11:05:01 toto12 CRON[10135]: (toto12) CMD (find /data/appli/ftp -type f -ctime +7 -wholename "*/Histo/*" -exec rm {} \+ > /data/appli/log/cron.log)
    Dec 21 11:10:01 toto12 CRON[10249]: (toto12) CMD (find /data/appli/ftp -type f -ctime +7 -wholename "*/Histo/*" -exec rm {} \+ > /data/appli/log/cron.log)
    Par contre dans mes répertoire "Histo", les fichiers plus vieux que 7 jours sont toujours présents
    Dans le fichier de log que j'ai créé "cron.log" , il n'y a rien (il est vide) , mais le fichier se créé

    Si j'execute la commande , en ligne de commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     find /data/appli/ftp -type f -ctime +7 -wholename "*/Histo/*" -exec rm {} \+
    Elle a l'air de fonctionner correctement
    Elle me demande si je veux bien effacer les fichiers un par un , en répondant oui ou non.

    Du coup , je n'arrive pas à voir ce qui cloche.

    Merci d'avance pour votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    Salut,

    Pour cela j'ai édité la table avec la commande "cron -e"
    Perso ça ne fonctionne pas contrairement à
    Dans le fichier de log que j'ai créé "cron.log" , il n'y a rien (il est vide) , mais le fichier se créé
    Donc le souci ne doit pas provenir de cron.


    Si j'execute la commande , en ligne de commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     find /data/appli/ftp -type f -ctime +7 -wholename "*/Histo/*" -exec rm {} \+
    Elle a l'air de fonctionner correctement
    Elle me demande si je veux bien effacer les fichiers un par un , en répondant oui ou non.
    En même temps, si tu lances une commande qui attend ta confirmation via cron, elle risque d'attendre longtemps, non ?
    Lance ta commande sans la demande de confirmation.

    D'ailleurs pourquoi te demande-t-il quoi que ce soit ? chez moi il obéit direct...
    et pour info : -exec rm {} est plus compliqué que -delete

  3. #3
    Membre chevronné Avatar de srvremi
    Homme Profil pro
    Directeur d'école d'ingénieurs
    Inscrit en
    Mars 2002
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur d'école d'ingénieurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 554
    Par défaut
    Salut.

    La commande suivante
    Ne te renverrait pas
    par hasard ?

    Si c'est le cas, il est normal qu'une commande cron ne fonctionne pas, car cette ligne nécessite la création d'une console virtuelle (à cause de la demande de confirmation).

    Tu peux aussi forcer la non-confirmation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /data/appli/ftp -type f -ctime +7 -wholename "*/Histo/*" -exec rm --interactive=never {} \+
    @+
    Rémi

Discussions similaires

  1. [XSLT] un if qui n'a pas l'air de fonctionner
    Par Ptite Pupuce dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 18/07/2008, 08h42
  2. Invite de commandes qui n'apparait pas
    Par mackla dans le forum Windows XP
    Réponses: 8
    Dernier message: 06/02/2008, 08h52
  3. [access 2007] un bouton de commande qui ne marche pas
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 5
    Dernier message: 04/01/2008, 09h33
  4. Boutons de commande qui ne fonctionnent pas
    Par Shakti dans le forum IHM
    Réponses: 4
    Dernier message: 24/11/2006, 16h29

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