Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

#1 25 Feb 2010 11:21:51

beyond_death69
Affranchi(e)
 
Date d'inscription: 25 Feb 2010
Messages: 5

[BASH]Tester espace disque disponible

Bonjour a tous,

voila je cherche a tester l'espace d'un disque dur USB. en Bash

En clair:
- si l'espace disponible < 25% faire...

OU alors

- si l'espace dispo < a ??? Mbs/Gbs faire...

Merci de votre aide smile

Dernière modification par beyond_death69 (25 Feb 2010 11:22:18)

Hors ligne

 

#2 25 Feb 2010 11:46:57

Tengu
Gourou(e) du libre
Lieu: La Tour-de-Peilz
Date d'inscription: 17 Nov 2004
Messages: 493
Site web

Re: [BASH]Tester espace disque disponible

hello,

la commande "df " va t'aider. tu peux aussi tenter de le piper dans un awk histoire de chopper précisemment la taille restante

genre :
df | awk  '/sda1/ {print $5}'       
30%

OU
df /dev/sda1 | awk  '/sda1/ {print $4}'
7016308

Donc de là, tu peux tenter un :
if [ $(df | awk '/sda1/ {'print $4}') -lt 8016308 ] ; then
# trop peu par rapport à ce que tu veux
else
# ok, do it !
fi

A+

C.


Science sans conscience n'est que ruine de l'âme

https://twitter.com/swisstengu (compte twitter)
https://blog.tengu.ch/ (un blog parmis tant d'autres)

Hors ligne

 

#3 25 Feb 2010 12:14:56

beyond_death69
Affranchi(e)
 
Date d'inscription: 25 Feb 2010
Messages: 5

Re: [BASH]Tester espace disque disponible

Merci de ton aide !

Par contre j'ai un soucis de permission, malgré que je sois en root (debian) et malgré un chmod 777 sur mon script. (et même sur mon disque dur USB )
J'ai éssayé de le mettre dans une variable, et de l'afficher par la suite pour voir comment procéder pour la suite, malheureusement:


Mon code:

mount /dev/sdb1 /root/usb
fspace=df /dev/sdb1 | awk  '/sdb1/ {print $4}'       -- Manque il des parenthèses ou je ne sais quoi pour regrouper toute l'opérande ? (Mes connaissances en bash sont encore au stage débutant :p)
echo $fspace
umount /root/usb

Résultat :
./test.sh: line 6: /dev/sdb1: Permission non accordée

Dernière modification par beyond_death69 (25 Feb 2010 12:31:28)

Hors ligne

 

#4 25 Feb 2010 12:23:42

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: [BASH]Tester espace disque disponible

Oui, il manque des `` ou un $():

Code:

fspace=$(df /dev/sdb1 | ... )

C'est un peu bizarre de monter des choses dans /root, /mnt ou /media sont faits pour ça normalement.

Hors ligne

 

#5 25 Feb 2010 12:43:34

beyond_death69
Affranchi(e)
 
Date d'inscription: 25 Feb 2010
Messages: 5

Re: [BASH]Tester espace disque disponible

BOFH a écrit:

C'est un peu bizarre de monter des choses dans /root, /mnt ou /media sont faits pour ça normalement.

C'est juste parce que je suis un fainéant et que tous mes scripts et données se trouve dans le répertoire de root. Vu que j'ai plusieurs serveurs a modifier je trouve ca plus pratique smile les droits on été crées en conséquence of course :p

Pour en revenir a mon script les quotes ne fonctionnent pas a cause de celle qui se situe vers le split et enfin le $ () il aime vraiment pas. xD

Donc je n'arrive même pas a afficher mon pourcentage d'espace libre -_-

merci en tout cas smile

Hors ligne

 

#6 25 Feb 2010 13:03:35

Tengu
Gourou(e) du libre
Lieu: La Tour-de-Peilz
Date d'inscription: 17 Nov 2004
Messages: 493
Site web

Re: [BASH]Tester espace disque disponible

la ligne 6 correspond à quoi ?
sinon, mets des "echo" après chaque action pour voir exactement ce qui merde.

à priori, ceci devrait marcher :

Code:

#!/bin/bash
mount /dev/sdb1 /mnt/toto
fspace=$(df | awk '/sdb1 {print $5}')
echo $fspace
umount /mnt/toto
exit 0

A+

T.


Science sans conscience n'est que ruine de l'âme

https://twitter.com/swisstengu (compte twitter)
https://blog.tengu.ch/ (un blog parmis tant d'autres)

Hors ligne

 

#7 25 Feb 2010 13:19:54

beyond_death69
Affranchi(e)
 
Date d'inscription: 25 Feb 2010
Messages: 5

Re: [BASH]Tester espace disque disponible

J'ai éssayé avec ce changement voila ce que ca me met:

Mon code :

Code:

#!/bin/bash
mount /dev/sdb1 /mnt/toto
fspace=$(df | awk '/sdb1 {print $5}')
echo $fspace
umount /mnt/toto
exit 0

et le resultat...:

./test.sh
awk: line 1: runaway regular expression /sdb1 {prin ...


Je vous avoue que je ne suis plus trop la big_smile Des idées ?

Thx : )

Hors ligne

 

#8 25 Feb 2010 13:32:56

Tengu
Gourou(e) du libre
Lieu: La Tour-de-Peilz
Date d'inscription: 17 Nov 2004
Messages: 493
Site web

Re: [BASH]Tester espace disque disponible

heu ouais.... easy, j'ai oublié un /....


Science sans conscience n'est que ruine de l'âme

https://twitter.com/swisstengu (compte twitter)
https://blog.tengu.ch/ (un blog parmis tant d'autres)

Hors ligne

 

#9 25 Feb 2010 13:48:24

beyond_death69
Affranchi(e)
 
Date d'inscription: 25 Feb 2010
Messages: 5

Re: [BASH]Tester espace disque disponible

Merci cela fonctionne maintenant...

Ca m'apprendra a ne pas chercher smile

Thx !!!!

Hors ligne

 

Pied de page des forums

Powered by FluxBB