[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash or sed script



Jacques L'helgoualc'h <lhh+no_spam@free.fr> wrote:
| mess-mate a écrit, mardi 7 juin 2005, à 00:42 :
| > Bonsoir,
| 
| bonjour,
| 
| > comme j'ai pas d'expérience avec l'extraction d'une partie de mot
| > d'un mot, voici mon pb:
| > J'ai un fichier Boot-07.tgz
| > de ce fichier je voudrais y retrouver le '07' qui représente le n°
| > du jour
| 
|  $ FILE="Boot-07.tgz"
| 
|  $ NUM="${FILE#Boot-}"
|  $ NUM="${NUM.tgz}"
| 
| Avec un champ de longueur fixe, on a aussi ${paramètre:début:longueur} ;
| le suivant est
| 
|  numero="$(printf '%02d' $[ "$NUM" + 1 ])"
|  $ echo "$numero"
| 08
| 
| 
| > et si il est plus petit que celui que je vais créer au jour '08',
| > qu'il soit effacé.
| > Il est évident si plus facile que je pourrais aussi bien créer le
| > fichier '07-boot.tgz'
| > 
| > Ou tout simplement numéroter en continu ( plus le n° du jour) ce
| > fichier.Càd 1-boot.tgz, 2-boot.tgz
| 
| Il me  semble plus commode d'utiliser  la date, avec  un format assurant
| l'ordre chronologique  ; on  évite ainsi de  dépendre de la  présence de
| l'archive précédente pour déterminer le numéro.
| 
|  $ date '+%Y-%m-%d'
| 2005-06-07
| 
| et la date d'hier est
| 
|  $ date '+%Y-%m-%d' -d '1 day ago'
| 2005-06-06
| 
| > et effacer le fichier avec le plus petit n°
| > De ce fait j'aurais toujours qu'un seul fichier de backup qui
| > passera par un crontab. 
| 
| Il me paraît  plus sûr d'attendre la création de  l'archive du jour pour
| effacer les précédentes, si la place n'est pas un problème. 
| 
| 
| Le script suivant devrait faire à peu près ce que tu demandes ?
| 
| ARCHIVE_DU_JOUR="Boot-$(date '+%Y-%m-%d').tgz"
| 
| tar czf "$ARCHIVE_DU_JOUR" /les/reps/à/sauver && { \
|  ls -1 Boot-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].tgz | \
|  grep -v -F "$ARCHIVE_DU_JOUR" | \
|  xargs rm -f
| }
| 
| -- 
| Jacques L'helgoualc'h
Ce dernier script marche à MERVEILLE.
Tous les anciens fichiers sont enlevés et un nouveau du jour est
crée; si un nouveau du jour existe déjà celui-ci est remplacé !
Reste encore:
- si plusieurs répertoires à sauver.
- que le script s'exécute lors du login à la machine par
l'utilisateur (workstation). 
C'est trop demandé ?
Déjà merci pour ton temps.

mess-mate                               
--
A few hours grace before the madness begins again.



Reply to: