Um artigo recente no compartimento de Red Hat por Noah Presente e por Grig Gheorghiu chamado isto não é seu comando do dd do grandpappy'd demonstrado como usar o pitão, a utilidade do dd e a carta API de Google para produzir uma carta de barra que mostra a produção em tamanhos de bloco diferentes. Entretanto a saída do certificado do pitão era o não o gráfico real mas um URL que você então tivesse que colar em um web browser para ver a carta resultante.
Eu embora este certificado seria útil mas não quereria ter que cortarar-col um URL em um web browser assim que no mim decidi eliminar essa etapa.
Este certificado do pitão é baseado frouxamente em seu certificado mas os usos as bibliotecas do urllib do pitão conectar a Google fazem um mapa para gerar uma lima de imagem do png que seja indicada subseqüentemente usando rotinas de pyGTK+. #! re da importação dos comandos da importação do ósmio da importação do sistema da importação do pitão de /usr/bin/env da classe DisplayGraph do gtk da importação do pygtk pygtk.require da importação da importação urllib2 do urllib da importação de OptionParser da importação do optparse (' 2.0): def delete_event (auto, widget, evento, data=None): o def falso do retorno destrói (auto, widget, data=None): __init do def de gtk.main_quit () (auto): self.window = gtk. Janela (gtk.WINDOW_TOPLEVEL) self.window.connect ( delete_event , self.delete_event) self.window.connect ( destrua , self.destroy) self.window.set_border_width (10) self.window.set_position (gtk.WIN_POS_CENTER) self.window.set_title (do produção disco ") pixbuf = gtk.gdk.pixbuf_new_from_file ( /tmp/dd.png ") os.remove ( /tmp/dd.png ") self.image = gtk. Imagem () self.image.set_from_pixbuf (pixbuf) ow de self.image.sh () self.window.add (self.image) cano principal do def do ow de self.window.sh () (auto): classe GoogleChart de gtk.main (): __init do def (auto): self.gchart_url = http://chart.apis.google.com/chart? self.gchart_type = cht=bvs self.gchart_title = &chtt= self.gchart_data = &chd=t: self.gchart_labels = &chxl=0: | self.gchart_size = &chs=400×250 self.gchart_axis_labels = &chxt=x, y, x, y self.gchart_axis_position = &chxp=2,50|3.50 self.gchart_bar_settings = título do def do &chbh=30,15 (auto, título): self.gchart_title = self.gchart_title + o def do título escrevem (auto, dados, etiquetas, max_t): self.gchart_data = self.gchart_data + data.rstrip (`, ') self.gchart_labels = self.gchart_labels \ + etiqueta + 2: |Block%20Size|3: |Mb/s self.gchart_axis_range = &chxr=1,0, + estreptococo (max_t+10.0) self.gchart_scaling = &chds=0, + estreptococo (max_t+10.0) self.gchart_url += self.gchart_type \ + self.gchart_title + self.gchart_size self.gchart_url += self.gchart_bar_settings \ + self.gchart_data + self.gchart_labels self.gchart_url += self.gchart_axis_labels \ + self.gchart_axis_position self.gchart_url += self.gchart_axis_range \ + self.gchart_scaling abridor = urllib2.urlopen (self.gchart_url) se opener.headers [ índice-tipo ]! = imagem do `/png': aumento BadContentTypeException (responded do usuário do `\ 'com um índice-tipo de %s \ % de opener.headers [ índice-tipo ]) abra ( /tmp/dd.png , `wb').write (opener.read ()) get_disk_throughput do def (dispositivo, tamanho de bloco): tamanho de bloco = estreptococo (tamanho de bloco) + k do ` cmd = dd if=/dev/zero of=%s bs=%s % (dispositivo, tamanho de bloco) saída = commands.getoutput (cmd) produção = 0 unidade = para a linha em output.split (n') do `: s = re.search (o `copiou. *, (\ S+) (\ S+) $ ', linha) se s: produção = s.group (1) unidade = s.group (2) ruptura retorne (produção, unidade) se == __main do __name: uso = uso: opções de %prog parser = OptionParser (usage=usage) parser.add_option ( - d , - dispositivo , do dispositivo do dest= \ dispositivo do help= a usar-se. Os dados do disco overwritten! ") (opções, args) = parser.parse_args () dispositivo = options.device se não dispositivo: parser.print_help ()

























