Le Forum Non Officiel de la DEDIBOX
Vous n'êtes pas identifié.
Salut à tous,
Ce n'est pas vraiment un projet à part entière mais simplement un bout de code qui pourrait vous reservir.
Je suppose que tout le monde connaît bwbar ? (l'utilitaire qui permet de représenter sa charge réseau sur une image (voir signature)).
Eh bien, moi, j'avais besoin de la même chose mais pour mon espace disque, donc voici hdbar :
#!/bin/perl
use GD;
#Definition des constantes
my $w = 602;
my $h = 6;
$im = new GD::Image($w,$h);
$couleur_fond_vide = $im -> colorAllocate ( 204 , 204 , 227 ) ;
$couleur_fond_plein = $im -> colorAllocate ( 214 , 136 , 131 ) ;
$couleur_bord = $im -> colorAllocate ( 0 , 0 , 0 ) ;
$couleur_separateur = $im -> colorAllocate ( 255 , 255 , 255 ) ;
$im -> fill (0,0,$couleur_fond_vide);
$im -> line (0,0,$w-1,0,$couleur_bord);
$im -> line (0,$h-1,$w-1,$h-1,$couleur_bord);
$im -> line (0,0,0,$h-1,$couleur_bord);
$im -> line ($w-1,0,$w-1,$h-1,$couleur_bord);
#Recuperation occupation
$partoch = @ARGV[0];
$tmp = system("df | grep $partoch >hdbar.tmp");
open (F,"hdbar.tmp");
if ($ligne = <F>)
{
$ligne =~ /[^0-9]*[0-9]*[^0-9]*[0-9]*[^0-9]*[0-9]*[^0-9]*([0-9]*)%.*/;
$use = $1;
}
system ("rm hdbar.tmp");
system ("echo \"Utilisation partition $partoch : \" > hdbar.txt");
system ("df -h | grep $partoch | awk '{ print \$2}' >> hdbar.txt");
$im -> filledRectangle (1,1,($use/100)*($w-1),$h-2,$couleur_fond_plein);
#Tracage des separateurs
$im -> line ($w/5,1,$w/5,$h-2,$couleur_separateur);
$im -> line (2*$w/5,1,2*$w/5,$h-2,$couleur_separateur);
$im -> line (3*$w/5,1,3*$w/5,$h-2,$couleur_separateur);
$im -> line (4*$w/5,1,4*$w/5,$h-2,$couleur_separateur);
open ( FICHIER_PNG , ">hdbar.png" ) ;
print FICHIER_PNG $im -> png ( ) ;
close ( FICHIER_PNG ) ;
Ca genere une image PNG de l'espace utilisé et un fichier texte qui indique l'espace utilisé précisemment.
Pour l'éxécuter : perl hdbar.pl <partition> (ex : perl hdbar.pl /DATA).
Je suis sûr qu'il y a des optimisations à faire mais c'est un début ![]()
@+
Gaëtan
PS1 : il faut installer le module GD pour Perl
PS2 : il faut utiliser les partitions montées dans le fstab (ca ne peut pas être un repertoire quelconque par exemple)
PS3 : je l'ai mis en crontab pour actualiser la barre
Dernière modification par Gaetan (2007-05-22 22:22:22)

Hors ligne
Je viens de voir ce post, ca m'a l'air pas mal ![]()
Bon boulot ![]()
PS : Je ne savais qu'on pouvait user de la POO en Perl :p
Edit, c'est mais du perl ou du php ? xD :+
Dernière modification par Mogui (2007-04-24 07:30:33)
Hors ligne
Perl caÿ le bieng ![]()

Hors ligne
Ca ressemble vachement a Php, du moins, a première vue ![]()
Euh, question con, ce ne serait pas possible de le foutre en while avec un sleep ? (histoire de ne pas se taper le crontab)
Dernière modification par Mogui (2007-04-24 09:58:34)
Hors ligne
1°) C'est PHP qui ressemble à Perl ![]()
2°) Si c'est possible
C'est juste que je le rafraichis qu'une fois par jour (pas besoin d'être mis à jour aussi souvent qu'une BWBar) donc je trouvais plus pratique de le mettre en crontab (en plus, après reboot, ca fonctionne encore
)...
Dernière modification par Gaetan (2007-04-24 10:08:42)

Hors ligne
Gaetan, tu pourrais éditer ton post en changeant code par quote ? ![]()
Car en code, on a le droit a l'affichage des lignes, et j'ai la flemme de virer tout ca :+
Hors ligne
Non il faut utiliser Geshi, donc remplacer la première balise code par code=perl
Hors ligne
Voilà !

Hors ligne
Meme avec geshi, j'ai :
1.
#!/bin/perl
/../
M'enfin, je crois que je vais nettoyer moi meme..
Dernière modification par Mogui (2007-05-17 17:33:06)
Hors ligne
Tu fais Citer et tu copie colle ^^
Hors ligne
Wouala, je l'ai mis en "quote"

Hors ligne
Merci :wub:
On se fait la bise ?
Hors ligne
Mogui a écrit:
Meme avec geshi, j'ai :
1.
#!/bin/perl
/../M'enfin, je crois que je vais nettoyer moi meme..
T'es sûr que tu prenais pas plutôt de la drogue ? ![]()
Hors ligne