Espace disque et batch
Dikmas
Messages postés
393
Statut
Membre
-
dionysoos Messages postés 85 Statut Membre -
dionysoos Messages postés 85 Statut Membre -
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
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
A voir également:
- Espace disque et batch
- Cloner disque dur - Guide
- Espace insécable - Guide
- Defragmenter disque dur - Guide
- Espace de stockage gmail plein - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
10 réponses
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
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
Personne ne peut me venir en aide ? (C'est un peu du up sauvage mais j'ai vraiment besoin d'aide :S)
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
@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 :(
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 :(
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
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