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,
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,
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....
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.
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:
merci par avancesu - 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
et même si ca parait pas claire vous pouvez toujours m'orienter a 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.
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
Bonjour,
exemple pour lancer /bin/ls tous les dimanche, a 13h00m :
exemple pour lancer /bin/ls tous les dimanche et les mardi, a 13h00m :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 00 13 * * 0 /bin/ls
exemple pour lancer /bin/ls tous les jours de la semaine (sauf week-end), a 13h00m :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 00 13 * * 0,2 /bin/ls
Code : Sélectionner tout - Visualiser dans une fenêtre à part 00 13 * * 1-5 /bin/ls
merci beaucoup
justement si tu peut confirmer la syntax mon script se fera soit :
1. du samedi au jeudi
soit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part 28 00 * * 0-4,6 /databackup/backup...etc
2.samedi lundi mercredi
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 28 00 ** 6,1,3 /databackup/backup..etc
voila le log
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
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
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
3at now+1min ## taper ici les commandes ^D
salut gang
tu sais ca a marché sans rien modifié, je ne sais pourquoi mais regarde ici
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é
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
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
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 *
et cela 2 fois par semaineTAPEDEV /opt/app/20090411_backpdb # remplacé par"20090511_backpdb"
j'ai cru entendre que la commande sed pouvait faire ca qu'en dite vous
MERCI ENCORE
Yop,
sed ou perl fonctionnent très bien pour faire du remplacement :
Si tu souhaites utiliser des variables dans les chaînes a remplacer, il faut utiliser des guillemets doubles : "
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 que le remplacement puisse se faire plusieurs fois par ligne, il faut ajouter un g (pour "global") apres le dernier /
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
surement la meme chose avec sed
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.
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 messageune idés????Please mount tape 1 on /dev/null/20090519_db and press Return to continue ...
QUOTE ???
Salut,
Il faut echapper les / avec un \ :
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
1
2 perl -pi -e 's/TAPEDEV \/dev\/null\/20090516/TAPEDEV \/dev\\/null\/20090519_db' koukou.txt
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
salut gang et desolé pour le retard
apres avoir essayé les '\' voila ce que j'ai recu
maintenant si je fait avec sed
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 foundCA 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 sed 's/TAPEDEV \/dev\/null\/20090516/TAPEDEV \/dev\/null\/20090519_db/' koukou.txt
ce que j'ai pas encore reussis a réaliser
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
je suis sous solaris 10
je reste a l'ecoute : MERCI ENCORE
ps : avec mon amis on a eu un truc avec awk
mais j'ai envi d'utiliser sed ou perl afin de ne pas créer un autre fichier et blabla mv etc....
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
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 :
Sinon, la solution consistant a utiliser # comme separateur fonctionne aussi avec perl :-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed ............ fichier1 > fichier2 && /bin/mv fichier1 fichier2
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
Bonjour,
Voici la commande équivalente qui marche:
Tu avais un "\\/null" au lieu de "\/null".perl -pi -e 's/TAPEDEV \/dev\/null\/20090516/TAPEDEV \/dev\/null\/20090519_db/g' koukou.txt
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é.
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
Bonjour,
Il faut "sortir" du mode simple quote, car entre les simples quote, tu n'as que du contenu perl qui peut être traduit:
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.sysdate=`date +%Y%m%d`
perl -pi -e 's#TAPEDEV\s+/dev/null/[0-9]+#TAPEDEV /dev/null/'"$sysdate"'_db#g' koukou.txt
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
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
les expressions régulières du style [0-9]+ m'était complètement sortie de la tête .
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
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager