Surveillance taille d'un fichier puis rotation [Résolu]

Signaler
Messages postés
234
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
13 février 2020
-
Ka-El
Messages postés
234
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
13 février 2020
-
Bonjour,
Je suis actuellement en train de travailler sur un script qui génère une trace de travail.
Cette log peut aléatoirement prendre des tailles importantes en fonction de l'activité de la plateforme sur laquelle le script est installé.
Pour prévenir tous éventuels problème de surcharge de disque, je suis donc contraint de surveiller la taille de cette log.
Je suis donc à la recherche d'un bout de code (je n'ai rien trouvé d'intéressant sur le net), qui va archiver la log quand celle-ci va atteindre une taille de 1 Mo (par exemple).
Voici un peu l'idée exprimée très schématiquement:
set ficlog=fichier.log
If %ficlog% > 1 Mo then
del %ficlog%.old
mv %ficlog% %ficlog%.old 
zip %ficlog%.old

Merci d'avance pour votre aide :-)
Ka-El

4 réponses

Messages postés
18067
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 février 2020
4 637
hello
la taille du fichier en octet est donnée par %~zX
C:> for %a  in (??.bat) do @echo %~za %a
30123 aa.bat
31805 bb.bat
28107 cc.bat
621 dd.bat
1675 lo.bat
149 sh.bat
74 z1.bat
27 z2.bat
Messages postés
234
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
13 février 2020

Salut Dubcek,
En fait, je recherche un morceau de code qui va contrôler la taille d'un fichier log.
Quand celle-ci atteint 1 mo, alors le script doit archiver le fichier (en supprimant préalablement l'ancien) et puis le compresse.
Voici l'idée:
set ficlog=fichier.log
If %ficlog% > 1 Mo then
del %ficlog%.old
mv %ficlog% %ficlog%.old
zip %ficlog%.old
dubcek
Messages postés
18067
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 février 2020
4 637
je n'ai pas testé, essayer
set ficlog=fichier.log
for %%a in (%ficlog%) do (
  If %%~za GTR 1000000 (
   del %ficlog%.old
   mv %%a %ficlog%.old
   zip %ficlog%.old
   )
)
Messages postés
234
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
13 février 2020

Tu crois que l'on est obligé de faire une boucle ?
Ce serait peut être un peu moins lourd avec un "type" sur le fichier log ?
dubcek
Messages postés
18067
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 février 2020
4 637
il faut une commande for pour récupérer la taille du fichier dans %%~zX
type pour connaitre la taille du fichier ???????? je vois pas
Messages postés
234
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
13 février 2020

oui tu as raison, c'est effectivement n'importe quoi...
En tout cas, ta proposition fonctionne bien.
Merci beaucoup pour ton aide ! :-)