You are not logged in.
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
Last edited by beyond_death69 (25 Feb 2010 11:22:18)
Offline
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.
Offline
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
Last edited by beyond_death69 (25 Feb 2010 12:31:28)
Offline
BOFH wrote:
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 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
Offline
la ligne 6 correspond à quoi ?
sinon, mets des "echo" après chaque action pour voir exactement ce qui merde.
à priori, ceci devrait marcher :
#!/bin/bash mount /dev/sdb1 /mnt/toto fspace=$(df | awk '/sdb1 {print $5}') echo $fspace umount /mnt/toto exit 0
A+
T.
Offline
J'ai éssayé avec ce changement voila ce que ca me met:
Mon 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 Des idées ?
Thx : )
Offline
heu ouais.... easy, j'ai oublié un /....
Offline
Merci cela fonctionne maintenant...
Ca m'apprendra a ne pas chercher
Thx !!!!
Offline