「これと呼ばれるノアGiftおよびGrig Gheorghiuによる赤い帽子の雑誌の最近の記事は示されるあなたのgrandpappy'd dd命令大蛇、ddの実用性および異なったブロックサイズで効率を示す棒グラフを作り出すのにGoogleの図表APIを使用する方法をではない。 但し大蛇の原稿からの出力はない実際のグラフしかし生じる図表を見るためにあなたがウェブブラウザに貼らなければならなかったURLであり。
この原稿が有用だったが、ウェブブラウザ従って私にURLをカットアンドペーストしなければなりたいと思ったけれどもIつはそのステップを除去することにした。
この大蛇の原稿は原稿に緩く基づいているが、pyGTK+ルーチンを使用して続いて表示されるPNGのイメージファイルを発生させるために使用はGoogleに接続する大蛇のurllibの図書館図表になる。 #! optparseの輸入のOptionParserの輸入のurllibの輸入urllib2の輸入のpygtkのpygtk.require (「2.0 ′)輸入のgtkのクラスDisplayGraphからの/usr/bin/envの大蛇の輸入sysの輸入osの輸入命令輸入のレニウム: delete_event def (自己、仕掛、でき事、data=None): 帰りの偽のdefは破壊する(自己、仕掛、data=None): gtk.main_quitの() defの__init (自己): self.window = gtk。窓(gtk.WINDOW_TOPLEVEL) self.window.connect (、self.delete_event 「delete_event」) self.window.connect (、self.destroy 「破壊しなさい」) self.window.set_border_width (10) self.window.set_position (gtk.WIN_POS_CENTER) self.window.set_title (「ディスク効率」) pixbuf = gtk.gdk.pixbuf_new_from_file (「/tmp/dd.png」) os.remove (「/tmp/dd.png」) self.image = gtk。イメージ() self.image.set_from_pixbuf (pixbuf) self.image.shのow () self.window.add (self.image) self.window.shのowの() defの本管(自己): gtk.mainの()クラスGoogleChart: defの__init (自己): 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 = 「&chbh=30,15 ″のdefのタイトル(自己、タイトル): self.gchart_title = self.gchart_title +タイトルのdefは書く(自己、データ、ラベル、max_t): self.gchart_data = self.gchart_data + data.rstrip (`、「) self.gchart_labels = self.gchart_labels \ + + 「2分類する: |Block%20Size|3: |Mb/s」 self.gchart_axis_range = 「&chxr=1,0」、+ str (max_t+10.0) self.gchart_scaling = 「&chds=0」、+ str (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 オープナ= urllib2.urlopen (self.gchart_url) opener.headersなら[「内容タイプ」]! = `のイメージかpng': 昇給BadContentTypeException (`サーバーresponded \ 「内容タイプの%sと\ %のopener.headers [「内容タイプ」]) 開けなさい(「/tmp/dd.png」、`wb').write (opener.read ()) defのget_disk_throughput (装置、ブロックサイズ): ブロックサイズ= str (ブロックサイズ) + `のk cmd = 「dd if=/dev/zero of=%s bs=%s」% (装置、ブロックサイズ) 出力= commands.getoutput (cmd) 効率= 0 単位= 「」 output.split (`のn')のラインのため: s = re.search (`はコピーした。*、(\ S+) (\ S+) $ '、ライン) s: 効率= s.group (1) 単位= s.group (2) 壊れ目 (効率、単位) __nameの== 「__main」戻しなさい: 使用法= 「使用法: %progの選択」 パーサー= OptionParser (usage=usage) parser.add_option (「- d」、「-装置」、dest=」装置」、\ 使用するべきhelp=」装置。 ディスクデータは重ね書きされる! 」) (選択、args) = parser.parse_args () 装置= options.device ない装置: parser.print_help ()

























