summaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorChrist Schlacta <[email protected]>2013-06-06 21:33:01 -0700
committerBrian Behlendorf <[email protected]>2013-06-18 15:43:15 -0700
commitfb02fabf9b8045d6a1ddedf3f79171f69633162d (patch)
tree671f27d97396973fbc0c2b8775587eda8213b233 /cmd
parent7634cd54db25a69e00aaab6448ad710441bd8e7d (diff)
Modified arcstat.py to run on linux
* Modified kstat_update() to read arcstats from proc. * Fix shebang. * Added Makefile.am entries for arcstat.py Signed-off-by: Brian Behlendorf <[email protected]> Closes #1506
Diffstat (limited to 'cmd')
-rw-r--r--cmd/Makefile.am2
-rw-r--r--cmd/arcstat/Makefile.am2
-rwxr-xr-xcmd/arcstat/arcstat.py24
3 files changed, 8 insertions, 20 deletions
diff --git a/cmd/Makefile.am b/cmd/Makefile.am
index 1a51ddcbc..bad1af63e 100644
--- a/cmd/Makefile.am
+++ b/cmd/Makefile.am
@@ -1,2 +1,2 @@
SUBDIRS = zfs zpool zdb zhack zinject zstreamdump ztest zpios
-SUBDIRS += mount_zfs fsck_zfs zvol_id vdev_id
+SUBDIRS += mount_zfs fsck_zfs zvol_id vdev_id arcstat
diff --git a/cmd/arcstat/Makefile.am b/cmd/arcstat/Makefile.am
new file mode 100644
index 000000000..802b8e1d9
--- /dev/null
+++ b/cmd/arcstat/Makefile.am
@@ -0,0 +1,2 @@
+bin_SCRIPTS = arcstat.py
+EXTRA_DIST = $(bin_SCRIPTS)
diff --git a/cmd/arcstat/arcstat.py b/cmd/arcstat/arcstat.py
index fcfdbb832..e01dd8b4c 100755
--- a/cmd/arcstat/arcstat.py
+++ b/cmd/arcstat/arcstat.py
@@ -1,4 +1,4 @@
-#!/usr/local/bin/python
+#!/usr/bin/python
#
# Print out ZFS ARC Statistics exported via kstat(1)
# For a definition of fields, or usage, use arctstat.pl -v
@@ -51,7 +51,6 @@ import re
import copy
from decimal import Decimal
-from subprocess import Popen, PIPE
from signal import signal, SIGINT
cols = {
@@ -149,33 +148,20 @@ def usage():
def kstat_update():
global kstat
- p = Popen("/sbin/sysctl -q 'kstat.zfs.misc.arcstats'", stdin=PIPE,
- stdout=PIPE, stderr=PIPE, shell=True, close_fds=True)
- p.wait()
-
- k = p.communicate()[0].split('\n')
- if p.returncode != 0:
- sys.exit(1)
+ k = [line.strip() for line in open('/proc/spl/kstat/zfs/arcstats')]
if not k:
sys.exit(1)
+ del k[0:2]
kstat = {}
for s in k:
if not s:
continue
- s = s.strip()
-
- name, value = s.split(':')
- name = name.strip()
- value = value.strip()
-
- parts = name.split('.')
- n = parts.pop()
-
- kstat[n] = Decimal(value)
+ name, unused, value = s.split()
+ kstat[name] = Decimal(value)
def snap_stats():