Rechercher : dans
Par :

Espace disque et batch

Dernière réponse le 7 nov 2008 à 12:12:38 Dikmas, le 5 nov 2008 à 09:35:48 
 Signaler ce message aux modérateurs

Bonjour

J'ai créé un fichier batch afin de faire une sauvegarde de ma base mysql.
La sauvegarde fonctionne très bien, avec création d'un fichier de sauvegarde pour chaque jours de la semaine (je remercie encore chuka pour m'avoir très fortement aidé).

Un problème se pose. Sur certains serveurs où je dois mettre en place la stratégie de sauvegarde, l'espace disque ne permet pas la création de plusieurs fichiers de sauvegarde.
Par conséquent, j'aimerais que, si l'espace disque est insuffisant pour sauvegarder complètement les bases, un message soit envoyé (par mail ou dans un fichier log), disant à l'administrateur que l'espace disque est faible.
Autrement dis, je voudrais savoir si il existe un moyen de connaitre l'espace disque restant.

Merci d'avance

Configuration: Windows XP
Firefox 3.0.3

Meilleures réponses pour « Espace disque et batch » dans :
[Vista] Libérer l'espace disque Voir Beaucoup de gens viennent sur le forum demander pourquoi Vista consomme-t-il énormément d'espace disque. Ceci est dû à plusieurs raisons. En voilà quelques unes : Le cache des miniatures Le cache des mises à jour Les clichés instantanés...
Gagner de la place sur son disque dur VoirProblème Comment faire pour gagner de la place sur mon disque dur ? Solution Pour gagner un peu d'espace disque (vieux pc ou ULPC) vous pouvez : Supprimer les fichiers de desinstallation de mises a jour se trouvant dans le repertoire Windows...
Désactiver l'alerte - Espace disque faible VoirQuand l'espace libre sur une de vos partitions devient très faible, vous recevrez une petite notification, qui devient très agaçante surtout si cette partition contient des documents importants pour vous. Pour désactiver cette alerte, procédez...

1

Dikmas, le 5 nov 2008 à 12:37:02

Personne ne peut me venir en aide ? (C'est un peu du up sauvage mais j'ai vraiment besoin d'aide :S)

Répondre à Dikmas

2

dionysoos, le 5 nov 2008 à 15:36:33

Bonjour il n'y a pas de command qui fais cette tache automatiquement mais avec de la jugeote tu peut arriver à tous avec la command CHKDISK, va te retourner un résultat de ce genre:

C:>CHKDSK
Le type du système de fichiers est NTFS.

Avertissement ! Le paramètre F n'a pas été spécifié.
Exécution de CHKDSK en mode lecture seule.

CHKDSK est en train de vérifier les fichiers (étape 1 de 3)...
La vérification des fichiers est terminée.
CHKDSK est en train de vérifier les index (étape 2 de 3)...
La vérification des index est terminée.
CHKDSK récupère les fichiers perdus.
CHKDSK est en train de vérifier les descripteurs de sécurité (étape 3 de 3)..
La vérification des descripteurs de sécurité est terminée.
CHKDSK a découvert de l'espace libre marqué alloué dans la
bitmap de la table de fichiers maîtres (MFT).
Correction des erreurs dans le carte du volume.
Windows a détecté des problèmes sur le système de fichiers.
Exécutez CHKDSK avec l'option /F pour les corriger.

39013852 Ko d'espace disque au total.
25569392 Ko dans 214858 fichiers.
60520 Ko dans 6680 index.
0 Ko dans des secteurs défectueux.
290016 Ko utilisés par le système.
65536 Ko occupés par le fichier journal.
13093924 Ko disponibles sur le disque.

4096 octets dans chaque unité d'allocation.
9753463 unités d'allocation au total sur le disque.
3273481 unités d'allocation disponibles sur le disque.

Il te suffit de retourner le résultat avec echo dans un fichier texte temporaire traiter ce dernier pour récupérer juste la ligne qui nous intéresse
donc cette ligne "3273481 unités d'allocation disponibles sur le disque"
Ensuite tu retraite cette ligne pour ne récupérer que 3273481
pour faire ces traitement regarde du coté de la command FOR /F ;)
ET une fois que tu a récupérer cette valeur tu fais un simple calcul
unités d'allocation disponibles sur le disque X octets dans chaque unité d'allocation
le résultat sera la taille restant sur ton disque Dur en octet.

Voila sa a l'air peut être compliqué mais je te rassure c'est très simple, bonne chance.

Répondre à dionysoos

3

Dikmas, le 5 nov 2008 à 15:42:25

Merci de ta réponse. Je vais voir si j'arrive à m'en sortir.

Répondre à Dikmas

4

dionysoos, le 5 nov 2008 à 16:21:25

@echo off
rem contenue de la command CHKDSK mit dans Temp.txt
CHKDSK > C:\Temp.txt
rem récupération de la ligne contenant le nombre ko disponibles sur le disque
FOR /F "delims=" %%a in ('findstr "Ko" C:\Temp.txt') DO ECHO %%a > C:\Temp1.txt
rem récupération du nombre d'allocation disponible
FOR /F "tokens=1 delims= " %%i in (C:\Temp1.txt) DO SET NbKoFree=%%i
Echo il vous reste : %nbKoFree% ko sur le disque

Voila quelque chose dans le genre, je viens de le tester sa fonctionne, par contre le temps que la command CHKDSK s'éxécute 5 bonnes minutes tu pourrais croire que l'appli a planté mais non.

Donc sa marche bien mais c'est quand même assez long :(

Répondre à dionysoos

5

reno, le 5 nov 2008 à 18:54:02

Ne surtout pas utiliser CHDSK, c'est crade.
Utiliser la méthode officielle.

Répondre à reno

6

dionysoos, le 6 nov 2008 à 08:48:14

Bonjour,
Si tu pouvais nous la donner j'en serais ravit je ne la connais pas.

Répondre à dionysoos

7

Dikmas, le 6 nov 2008 à 13:28:59

Bonjour

Merci dionysoos. Mis à part que ça prend un peu de temps, ça marche.

J'aurais une autre question.

j'aimerais que si %nbKoFree% inférieur à 37 000 000 Ko (par exemple) ça m'écrive "espace disque insuffisant" dans un fichier txt.

Il faut utiliser l'instruction IF mais le signe "<" ne fonctionne pas. Existe-t-il un moyen pour le faire ?


IF %nbKoFree% <inférieur à> 37000000 ECHO Espace disque insuffisant >> D:\fichier.txt

Répondre à Dikmas

8

dionysoos, le 6 nov 2008 à 14:01:27

Bonjour,

Je viens de te modifier le script pour qu'il fasse ce que tu demande, dans la boucle fort ou on attribut une valeur à NbKoFree avec la command SET n'oublie pas d'ajouter le /a pour lui dire que c'est une valeur numérique.

@echo off
rem contenue de la command CHKDSK mit dans Temp.txt
CHKDSK > C:\Temp.txt
rem récupération de la ligne contenant le nombre ko disponibles sur le disque
FOR /F "delims=" %%a IN ('findstr "Ko" C:\Temp.txt') DO ECHO %%a > C:\Temp1.txt
rem récupération du nombre d'allocation disponible
FOR /F "tokens=1 delims= " %%i IN (C:\Temp1.txt) DO SET /a NbKoFree=%%i
Echo il vous reste : %nbKoFree% ko sur le disque
rem test si la valeur de la variable est inferieur à la valeur définit
IF %NbKoFree% LSS 37000000 ECHO Espace disque insuffisant >> D:\fichier.txt

Répondre à dionysoos

9

Dikmas, le 6 nov 2008 à 14:36:54

ça marche sur windows xp pro, mais pas sur 2003 server :/

Il exécute la commande CHKDSK

Il ne me créé pas le fichier Temp1.txt
par conséquent, il ne sais pas où chercher la variable %NbKoFree%

j'ai fait un bête c/c de xp pro à 2003 server, l'architecture étant exactement la même.

Répondre à Dikmas

10

 dionysoos, le 7 nov 2008 à 12:12:38

Je ne sais pas, peut être une question de droit en écriture à vérifier.

Répondre à dionysoos