Jacques L'helgoualc'h <[EMAIL PROTECTED]> 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.
--
Pensez � lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez � rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]