ようこそ、
Conkyを使用して、8秒ごとにサンプリングしてネットワーク負荷統計を表示し、より滑らかな履歴グラフを取得します。残念ながら、私が取得するすべての値はこの8秒間の平均ではありませんが、非常に短い期間からサンプリングされているため、チャートは1秒以下からサンプリングされた場合と同じように途切れています。
Windowsのタスクマネージャーのように、指定された時間にわたって平均化されたシステムプロパティをconky(または少なくともシステムモニター)で表示する方法はありますか?
Iostatからconkyディスプレイのハードドライブの使用状況を表示したいのですが、conkyが時間の経過とともに平均化されていない瞬時値を報告する場合は、ほとんど使用されません。
編集:ユーティリティifstatの特定のネットワークの問題に対する半解があります。このプログラムを実行すると
ifstat 8 1
確かに、8秒間隔で適切なネットワーク負荷平均が得られます。しかし、明らかな理由から、この呼び出しは完了するまでに8秒かかります。私はこれを機能させるために十分なluaを学ぼうとしています。
プログラムでネットワークアクティビティの優れたダイジェストを取得したい場合は、vnstat
がおそらくあなたの役目です。以下で説明するように、vnstati
というプログラムを使用して、vnstat
データベースから指定された時間フレームのグラフを取得できます。
まず、プログラムをダウンロードします。
Sudo apt-get install vnstat vnstati
監視するインターフェースがeth0
;の場合は、最初にデータベースをセットアップします。このコマンドを使用して、後でデータベースを更新できます。
Sudo vnstat -u -i eth0
デフォルトのインターフェースがeth0
でない場合は、/etc/vnstat.conf
のデフォルトのインターフェースエントリを編集するか、ホームフォルダーに.vnstat
ファイルを作成し、ファイルの先頭にInterface "eth1"
を追加するだけで変更できます。
Vnstat
は、指定したアダプターでのネットワーク使用状況を監視しますが、次のように入力すると、ライブの詳細を確認できます。
vnstat -l -i eth0
コマンドラインから統計情報を時間、週、月などで表示することもできます(ただし、上記のSudoコマンドを使用して、最初にデータベースを更新することをお勧めします)。次に、毎日の使用状況を表示するコマンドの例を示します。(d
をh
に置き換えて、毎時、w
を毎週に置き換えます)
vnstat -d -i eth0
lotより多くの統計分析がvnstat
で利用可能です。man vnstat
または Ubuntuのオンラインマンページを参照してください 。
次のコマンドを使用して、以下のvnstati
のグラフを参照し、毎時の使用量と毎日の使用量を表示します(毎週、毎月などの時間を表示し、さまざまな方法でデータを表示することもできます)(もう一度データベースの更新を実行してください) vnstat
これらのvnstati
コマンドを実行する前に)
vnstati -h -i eth1 -o net.png
vnstati -d -i eth1 -o net2.png
(私がvnstat
を使い始めたばかりで、ちなみに私のデフォルトのインターフェースはeth1
ですが、あなたのインターフェースはおそらくeth0
なので、最初のグラフは少し空白です)
vnstati
のその他のオプション、およびvnstat
データベースから出力できるすべての統計については、man vnstati
および Ubuntuマンページオンライン を参照してください。
まあ、それは非常に大雑把かもしれません(私はスクリプトプログラミングの専門家ではなく、Luaで書かれた私の最初のプログラムです)が、私の問題は解決します。
これは、conkyリフレッシュ間隔(8秒)より少し短い間統計を平均化するifstatを呼び出すバックグラウンドでmake-netstatを呼び出すことで機能します。結果は一時ファイルに書き込まれ、次にconkyの次のリフレッシュ実行で読み取られます。
ディスクI/Oのため、SSDディスクのユーザーには推奨されるソリューションではありません。統計は、make-netstatとconkyの間の競合状態を防ぐために存在する0.5秒のギャップも考慮していません。
〜/ .conkyディレクトリにいくつかのファイルを作成しました。 make-netstats.sh:
#!/bin/sh
ifstat -i wlan0 -n $1 1|tail -n 1 >~/.conky/wifi-stats-new.txt
cp ~/.conky/wifi-stats-new.txt ~/.conky/wifi-stats.txt
call-make-netstats.sh:(何らかの理由で、ホームディレクトリへのショートカットとしての,〜 ''が機能しないため、ホームフォルダのフルパスを指定します。)
#!/bin/sh
/home/adam/.conky/make-netstats.sh $1 &
netstat.lua:
do
function conky_prepare_wlan_stats(czas)
os.execute("/home/adam/.conky/call-make-netstats.sh " .. czas)
end
function conky_get_wlan_input()
local f = io.open("/home/adam/.conky/wifi-stats.txt", "r")
local str = f:read("*all")
local sin = string.gsub(str, "^%s*([%d%.]+)%s*([%d%.]+)%s*","%1")
return sin
end
function conky_get_wlan_output()
local f = io.open("/home/adam/.conky/wifi-stats.txt", "r")
local str = f:read("*all")
local out = string.gsub(str, "^%s*([%d%.]+)%s*([%d%.]+)%s*","%2")
return out
end
end
そして最後に。conky.rcで次のように使用します。
${font Goudy Bookletter 1911:style=Normal}WIRELESS${font} ${hr 2}
${voffset 4}${font PizzaDude Bullets:size=14}O${font} Up: ${lua conky_get_wlan_output} ${alignr} ${voffset -10} ${lua_graph conky_get_wlan_output 20,200 300}
${lua conky_prepare_wlan_stats 7.5} #The function prepares statistics for another refresh of conky stat. 7.5 is slightly less then 8 seconds to prevent from overlap.1
${voffset -30}${font PizzaDude Bullets:size=14}U${font} Down: ${lua conky_get_wlan_input} ${alignr} ${voffset -10} ${lua_graph conky_get_wlan_input 20,200 300}