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

Solaris Discussion :

Cherche la bonne syntaxe pour crontab


Sujet :

Solaris

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Cherche la bonne syntaxe pour crontab
    Bonjour,

    J'utilise la crontab sous Solaris 10 pour planifier des sauvegardes.
    J'aimerais syntaxer une sauvegarde,
    Ex: un Samedi sur deux à 01 heures du matin.
    Comment mettre en ligen un samedi sur deux ??

    Merci,

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    mieux vaut peut etre utiliser un simple test
    si le fichier log de la derniere sauvegarde à moins de 10 jours => exit
    dans le debut du script ....

    parceque je ne sais pas si la syntaxe /2 existe sur les jours. ni meme si elle est accepteé tout court....

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Oui, je pourrais le faire dans ce sens mais le problème il faut que je renome un fichier avec la date du samedi de la sauvegarde.

  4. #4
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut Crontab quantd tu nous tien
    bonjour
    OS :SOLARIS 10
    niveau : débutant
    je profite de ce topic pour demander de l'aide pour une sauvegarde bi-hebdomadaire (exemple: dimanche mercredi) ou quotidienne

    et en même temps voudrais savoir s'il ya des tutos pour l'admin par etape avec une introduction sur les scripts shell et des exemple....????

    bref :ma tache pour le backup d'une base informix bihebdo est la suivante:
    su - informix puis cd /etc
    1.editer une ligne dans /../informix/etc/configx
    "..tape device home/monbackdaujourduis "au format yyyymmdd_itdb (date system)
    2. créer ce fichier touch ../informix/yyyymmdd_itdb
    3.lui donner les droit rw CHMOD 777 ..!informix/yyyymmdd_itdb
    loger su - informix
    executer la commande de backup #ontape -s -L 0
    **la j croit qu'il y a un problème, puisqu'il faut appuyer sur entrer pour confirmer
    EN fin j'ai envie de stoker le message retourné dans un fichier log quelconque
    avec la date du backup
    merci par avance
    et même si ca parait pas claire vous pouvez toujours m'orienter a défaut

  5. #5
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Pour ce qui est multi-hebdomadaire, la crontab sait faire. Un simple coup d'oeil au man devrait te permettre de savoir comment ecrire la ligne qui va bien.

    Concernant le shell, il existe bien sur des tuto. En voici un par exemple.

    Concernant l'administration des plateformes, c'est plus complexe, car chacun veut y faire des choses differentes. Je crains donc que tu ne trouves pas de tuto sur le sujet.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  6. #6
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut Crontab quantd tu nous tien
    merci pour ton aide gang

    j'essaierais de trouver ce dont je cherche selon tes lien et orientations
    j'espère justement que ça soit le cas cette semaine

    sinon si quelqu'un a une idée qui pourrait aider je suis tout ouïe .

    je vous mettrais au courant de la suite ...

    ps: les script admin concerne la gestion des performances et des disques en générale ...en d'autres mots "B-A ba" de l'admin debutant.


    Merci encore

  7. #7
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    exemple pour lancer /bin/ls tous les dimanche, a 13h00m :

    exemple pour lancer /bin/ls tous les dimanche et les mardi, a 13h00m :

    exemple pour lancer /bin/ls tous les jours de la semaine (sauf week-end), a 13h00m :

    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  8. #8
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut ah
    merci beaucoup

    justement si tu peut confirmer la syntax mon script se fera soit :
    1. du samedi au jeudi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    28 00 * * 0-4,6 /databackup/backup...etc
    soit:
    2.samedi lundi mercredi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    28 00 ** 6,1,3 /databackup/backup..etc
    par-ce-que j'ai essaye de runner un scripte simple avec la première ligne ca a pris une seconde a rien faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/bin/sh
    #SCRIPT CPU usage cpu_log.sh
    sar 60 400 >> /databackup/backup_work/cpu_log.txt |wc -l
    voila le log

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >  CMD:  /databackup/backup_work/cpu_log.sh
    >  root 13891 c Tue Apr 28 08:28:00 WAT 2009
    <  root 13891 c Tue Apr 28 08:28:00 WAT 2009


    merci encore les gars

  9. #9
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Pour le second, il te manque un espace entre les deux etoiles.

    Sinon, il faut que ton script soit capable de s'executer dans un environnement vierge. Il faut donc mettre tous les chemins absolus, ce qui n'est pas le cas de ton appel a sar.

    Essaye comme ca, et dis-nous si ca fonctionne.

    PS : pour essayer un script de crontabm pas la peine d'attendre qu'il soit 00h28 : utilises la commande 'at'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    at now+1min
    ## taper ici les commandes
    ^D
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  10. #10
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut au fait
    salut gang
    tu sais ca a marché sans rien modifié, je ne sais pourquoi mais regarde ici
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    ----suite
    11:21:00      27       1      15      58
    11:22:00      34       1       6      60
    11:23:00      58       1      10      31
    11:24:00      31       0       4      65
    11:25:00      36       1      13      50
    11:26:00      41       1       5      53
    11:27:00      55       1       6      38
    11:28:00      20       0       3      76
    11:29:00      26       1       6      68
    11:30:00      42       1       2      56
    11:31:00      48       1       7      44
    11:32:00      54       1       6      39
    11:33:00      75       1       2      22
    11:34:00      58       1       5      36
    11:35:00      76       2      10      12
    11:36:00      80       2       2      16
    11:37:00      59       2      11      29
    11:38:00      36       1       5      59
    11:39:00      27       1       6      67
    11:40:00      49       1       2      48
    11:41:00      35       0       5      59
    11:42:00      18       0       2      79
    11:43:00      37       0       4      59
    11:44:00      32       0       7      61
    11:45:00      41       1       4      54
    11:46:00      35       1   
    HP-UX server2 B.11.11 U 9000/800    04/28/09
    
    11:21:09    %usr    %sys    %wio   %idle
    11:22:09      35       1       7      57 
    ---suite2
    ....
    14:40:00      27       2      12      59
    14:41:00      24       0       6      70
    14:42:00      30       0       3      67
    14:43:00      23       0       4      73
    14:44:00      35       0       2      63
    14:45:00      26       1       2      71
    14:46:00      26       1       7      65
    14:47:00      21       0       4      74
    14:48:00      15       0       3      82
    14:49:00      22       0       6      72
    14:50:00       9       0       3      88
    14:51:00      18       0       5      77
    14:52:00      21       0      15      64
    14:53:00      21       0       4      74
    14:54:00      20       0       3      76
    14:55:00      24       1       4      72
    14:56:00      38       1       6      55
    14:57:00      28       1       6      65
    14:58:00      35       0       5      60
    14:59:00      12       0       7      81
    15:00:00      11       0       4      84
    15:01:00      10       0       5      85
    15:02:00      24       0       4      72
    15:03:00      22       0       7      70
    15:04:00      35       1      13      51
    15:05:00      44       1       8      47
    15:06:00      35       1      11      52
    15:07:00      33       0       4      63
    15:08:00      31       0       5      64
    
    Average       31       1       6      63
        3      73
    14:40:09      26       2      11      62
    14:41:09      26       0       5      68
    a 11 h22 et 14h40 ya une répétition qui se fait en doublant les 28 minutes suivantes. serait ce a cause d'un bug ,(pas de la matrice bsr),inopiné
    ou comme une veille du process sar?


    Et au fait si le cron est juste pour le samdi au jeudi et pas vendredi
    j'ai estimé la taille du fichier après quatre mois de <=5 environ : me conseil tu créer un autre cron pour compresser le fichier (sauvegarde) et initialiser son contenue tout les 4 mois?
    OU mettre ça dans le même script (initial) avec vérification de la taille du log if taille > '4 mo' à chaque fois si c'est le cas faire les opérations citées ?

    dans les deux cas ;une idée la dessus ?
    MERCI Encore

  11. #11
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut
    hola
    pour l'affichage c'est ok mais
    pour le reste j'ai toujours pas réussis (compresser le resultat log dans un nouveau fichier et réinitialiser le contenue du fichier log ,et ca chaque 4 mois)

    et Au fait pour le script initial je cale grave
    pouvez vous m'aider
    j'ai juste envie d'éditer le contenu d'un fichier
    === en modifiant le milieu une ligne x et enregistrer tout ca
    exemple *
    TAPEDEV /opt/app/20090411_backpdb # remplacé par"20090511_backpdb"
    et cela 2 fois par semaine
    j'ai cru entendre que la commande sed pouvait faire ca qu'en dite vous


    MERCI ENCORE

  12. #12
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Yop,

    sed ou perl fonctionnent très bien pour faire du remplacement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -pi -e 's/la_chaine_a_remplacer/la_nouvelle_chaine' mon_fichier
    Si tu souhaites utiliser des variables dans les chaînes a remplacer, il faut utiliser des guillemets doubles : "
    Si tu souhaites que le remplacement puisse se faire plusieurs fois par ligne, il faut ajouter un g (pour "global") apres le dernier /
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  13. #13
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut ola
    yo gang
    désolé du retard j'avais pas vu le message j'ai pas été notifié par mail



    sinon je pourrais exécuter la commande mais
    si on a des '/' dans l'expression qu'on veut changer ca coince un peut (la partie rouge est l'existant et la verte est l'expression a insérer a sa place)

    regarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #perl -pi -e 's/TAPEDEV         /dev/null/20090516/TAPEDEV         /dev/null/20090519_db'koukou.txt
    Bareword found where operator expected at -e line 1, near "s/TAPEDEV         /dev/null"
    Bareword found where operator expected at -e line 1, near "20090519_billdb"
            (Missing operator before billdb?)
    syntax error at -e line 1, near "s/TAPEDEV         /dev/null"
    Execution of -e aborted due to compilation errors.
    surement la meme chose avec sed
    sed 's/TAPEDEV /dev/null/20090516/TAPEDEV /dev/null/20090519_db' koukou.txt


    Merci par avance les gars
    ps :dans l'une des étapes suivantes j'aurais besoin de simuler un retour chariot après ce message
    Please mount tape 1 on /dev/null/20090519_db and press Return to continue ...
    une idés????
    QUOTE ???

  14. #14
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Salut,

    Il faut echapper les / avec un \ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    perl -pi -e 's/TAPEDEV         \/dev\/null\/20090516/TAPEDEV         \/dev\\/null\/20090519_db' koukou.txt
    Sinon, tu utilises vim -c avec le separateur dont tu as envie (attention, syntaxe approxymative)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vim -c ':%s#TAPEDEV         /dev/null/20090516#TAPEDEV         /dev/null/20090519_db#g' koukou.txt
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  15. #15
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut euh
    salut gang et desolé pour le retard
    apres avoir essayé les '\' voila ce que j'ai recu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    root@1 # perl -pi -e 's/TAPEDEV         \/dev\/null\/20090516/TAPEDEV         \/dev\\/null\/20090519_db' koukou.txt
    Bareword found where operator expected at -e line 1, near "s/TAPEDEV         \/dev\/null\/20090516/TAPEDEV         \/dev\\/null"
    Backslash found where operator expected at -e line 1, near "null\"
    syntax error at -e line 1, near "s/TAPEDEV         \/dev\/null\/20090516/TAPEDEV         \/dev\\/null"
    Search pattern not terminated at -e line 1.
    root@1 # vim -c ':%s#TAPEDEV         /dev/null/20090516#TAPEDEV         /dev/null/20090519_db#g' koukou.txt
    vim: not found
    maintenant si je fait avec sed
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     sed  's/TAPEDEV         \/dev\/null\/20090516/TAPEDEV         \/dev\/null\/20090519_db/'  koukou.txt
    CA MARCHE Mais ca ne se stok pas dans le fichier original et pour la date je devrais remplacer par le jour courrant .donc jaurais aimer un truc genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/bin/sh 
    "sysdate=`date +%Y%m%e`"
    sed  's/TAPEDEV         \/dev\/null\/2009????/TAPEDEV         \/dev\/null\/"sysdate\"_db/'  koukou.txt > koukou.txt
    ce que j'ai pas encore reussis a réaliser
    je suis sous solaris 10
    je reste a l'ecoute : MERCI ENCORE
    ps : avec mon amis on a eu un truc avec awk
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cat koukou.txt | awk '{if ($1 ~ /^TAPEDEV/) {print ("TAPEDEV         /opt/informix/"sysdate"_db        # Tape device path")} else {print $0}}'
     "sysdate=`date +%Y%m%e`" > koukou1.txt
    mv koukou1.txt koukou.txt
    mais j'ai envi d'utiliser sed ou perl afin de ne pas créer un autre fichier et blabla mv etc....

  16. #16
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Si ta version de sed supporte l'option -i, alors le remplacement se fait dans le meme fichier. Mais cette option n'est pas supportee par la version de sed de Solaris 10.

    Solution qui fonctionne en deux commandes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed ............ fichier1 > fichier2 && /bin/mv fichier1 fichier2
    Sinon, la solution consistant a utiliser # comme separateur fonctionne aussi avec perl :-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -pi -e 's#TAPEDEV         /dev/null/20090516#TAPEDEV         /dev/null/20090519_db#g' koukou.txt
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  17. #17
    Membre actif

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 211
    Points
    211
    Par défaut Perl
    Bonjour,

    Voici la commande équivalente qui marche:
    perl -pi -e 's/TAPEDEV \/dev\/null\/20090516/TAPEDEV \/dev\/null\/20090519_db/g' koukou.txt
    Tu avais un "\\/null" au lieu de "\/null".

    Perso j'utilise Perl pour éditer les fichiers, comme ça tu n'a pas besoin de redirection ou de fichier temporaire comme avec sed.

    => A oublier, la solution en utilisant un # comme séparateur est plus propre, mon post s'est télescopé, désolé.

  18. #18
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut ah
    t'a raison j'avais remaqué
    mais suppose que la partie
    perl -pi -e 's/TAPEDEV \/dev\/null\/20090516
    a remplacer soit quelconque (la date aleatoire)
    comment la remplacer avec ce script sans la conaitre au prealable
    genre remplacer dev/...../xxxxxxxx par dev/.../datedujour

    merci d'avance

  19. #19
    Membre actif

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 211
    Points
    211
    Par défaut Pas simple
    Bonjour,
    Il faut "sortir" du mode simple quote, car entre les simples quote, tu n'as que du contenu perl qui peut être traduit:
    sysdate=`date +%Y%m%d`
    perl -pi -e 's#TAPEDEV\s+/dev/null/[0-9]+#TAPEDEV /dev/null/'"$sysdate"'_db#g' koukou.txt
    Par contre il faut quand même mettre un double quote pour que perl concatène la variable avec sa commande actuelle, sinon il va considérer que c'est la fin de l'instruction à exécuter.

    La syntaxe des expressions régulières est à peu prêt standard (globalement la même que dans sed), genre [0-9]+ veut dire "au moins un chiffre".
    \s correspond à espace ou tabulation (ou retour à la ligne) et est plus fiable que de mettre des vrais espaces, si un jour ton format d'entrée a une tabulation ça ne sera plus reconnu.

    Pour débuter sur les expressions régulières en perl (mais c'est plutôt orienté programmation):
    http://lhullier.developpez.com/tutor.../?page=page_11

  20. #20
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut eh be
    trop classe merci beaucoup
    ca marche et sans utiliser de fichier temporaire pour la modification
    par curiosité j'ai voulu tester l'équivalent en sed .c'est ok aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    d=`date +%Y%m%d`
    ed  's/TAPEDEV         \/dev\/null\/0-9]+_db/TAPEDEV         \/dev\/null\/'$d'_db/'  koukou.txt>koukou1.txt && mv koukou1.txt koukou.txt
    les expressions régulières du style [0-9]+ m'était complètement sortie de la tête .

    perl m'a toujours paru trop compliqué pour moi .mais la je viens de télécharger le pdf du lien que tu as donné . et je compte faire un effort

    encore merci
    a la prochaine bourde

Discussions similaires

  1. bonne syntaxe pour mysqldump
    Par lis81 dans le forum Débuter
    Réponses: 2
    Dernier message: 20/02/2009, 15h54
  2. Réponses: 2
    Dernier message: 25/04/2008, 15h52
  3. Bonne syntaxe pour condition dans une requete
    Par cedlannoy dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/03/2007, 15h24
  4. Cherche la bonne syntaxe
    Par yoghisan dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/03/2007, 12h12
  5. cherche bonne syntax pour màj oracle
    Par nenekes dans le forum Langage SQL
    Réponses: 4
    Dernier message: 22/01/2007, 18h19

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