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

Linux Discussion :

Sed - cron.daily


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Par défaut Sed - cron.daily
    Bonjour,

    je suis sous RHEL5, et j'ai créé un script permettant de supprimer des lignes dans un ensemble de fichiers par rapport à des critères présents dans un fichier (liste-a-supprime).
    Pour celà j'ai utilisé la commande sed.

    Mon script fonctionne très bien lorsque je l'execute dans un shell : l'ensemble des lignes souhaitées sont supprimées.

    Voici mon script :
    -------------------------------------------------------------
    #!/bin/bash
    DIR="/root/sed"
    for i in $(/bin/more +2 ${DIR}/liste-a-supprime)
    do
    /bin/sed -i '/'"$i"'/d' ${DIR}/*.rules
    done
    -------------------------------------------------------------

    Mon problème intervient lorsque je crée un cron dans /etc/con.daily, qui contient le contenu de mon script.
    Lorque le cron s'exécute, je retrouve les fichiers traités par le sed vides !!!

    Quelqu'un aurait-il une explication ?
    Merci d'avance

  2. #2
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    Bonjour,

    je ne connais pas l'option -i sur sed. que doit elle faire?


    Ensuite il faut faire attention aux redirections, ton script ne le montre pas mais j'ai l'impression que tu écrits dans un fichier que tu est en train de lire (c'est le même effet en tout cas).

    par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sed '/quelquechose/d'  monfichier > monfichier
    va écraser monfichier (fichier vide) car à cause de l'accès en écriture '>',

    Une solution simple consiste a passer par un fichier temporaire que tu supprimera

  3. #3
    Membre averti
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Par défaut
    L'option -i depuis la version 4 de SED, permet de travailler sur les fichiers existant sans avoir besoin de passer par un/des fichier(s) temporaires.

    Cela fonctionne bien en exécutant depuis une session Terminal/shell par contre lorsque je rentre la ligne dans un cron , les fichiers sont vides !!!

    Je ne comprends pas la différence de résultats entre les 2 modes de fonctionnement ...

Discussions similaires

  1. [Fedora 12] Job `cron.daily' locked by another anacron - skipping
    Par Zep3k!GnO dans le forum Administration système
    Réponses: 2
    Dernier message: 04/03/2011, 13h02
  2. modifier l'heure de /etc/cron.daily?
    Par nymus7 dans le forum Administration système
    Réponses: 7
    Dernier message: 26/02/2010, 18h10
  3. Ajouter des infos cron.daily
    Par info_alex dans le forum Administration système
    Réponses: 2
    Dernier message: 24/06/2008, 08h38
  4. Makefile et sed
    Par pitistef dans le forum Systèmes de compilation
    Réponses: 7
    Dernier message: 10/02/2004, 16h06
  5. [langage] awk et sed dans script perl
    Par scoti dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2003, 19h26

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