linux_stat 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/linux_stat/memory.rb +7 -7
- data/lib/linux_stat/mounts.rb +3 -3
- data/lib/linux_stat/net.rb +4 -4
- data/lib/linux_stat/os.rb +1 -1
- data/lib/linux_stat/process.rb +45 -23
- data/lib/linux_stat/swap.rb +4 -4
- data/lib/linux_stat/user.rb +4 -3
- data/lib/linux_stat/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b3270fb4ddf3dd436a63233d134f5fecd2ff13d7aa0d4f91b444ac65ed29b84
|
4
|
+
data.tar.gz: 8f4987b804b866eb6b0bea4a9de1a507e6529ca6188d54b0def59a7dbf74c73f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd9393533d03fbfe16599d972762aaa6d84aa737de9ceccd7a4b333a3e049742e2a088f29364203dfd5e65199c95ccc790a68d31e8c8cf6c5f6fd718dc655818
|
7
|
+
data.tar.gz: b4fbe848f72fe1d51ed8c3d8bba37aba8a1da937c4f1639503dedbb894fc8eebe6516c7c8957e88569b73362d03dfd4a60787af1c4c585fe40b73725e2f5dabe
|
data/lib/linux_stat/memory.rb
CHANGED
@@ -11,7 +11,7 @@ module LinuxStat
|
|
11
11
|
def stat
|
12
12
|
return {} unless meminfo?
|
13
13
|
|
14
|
-
memory = IO.foreach('/proc/meminfo').first(3)
|
14
|
+
memory = IO.foreach('/proc/meminfo'.freeze).first(3)
|
15
15
|
|
16
16
|
total = memory[0].split[1].to_i
|
17
17
|
available = memory[2].split[1].to_i
|
@@ -39,7 +39,7 @@ module LinuxStat
|
|
39
39
|
# It retuns an Integer but if the info is not available, it will return nil.
|
40
40
|
def total
|
41
41
|
return nil unless meminfo?
|
42
|
-
IO.foreach('/proc/meminfo').first.split[1].to_i
|
42
|
+
IO.foreach('/proc/meminfo'.freeze).first.split[1].to_i
|
43
43
|
end
|
44
44
|
|
45
45
|
##
|
@@ -49,7 +49,7 @@ module LinuxStat
|
|
49
49
|
# It retuns an Integer but if the info is not available, it will return nil
|
50
50
|
def available
|
51
51
|
return nil unless meminfo?
|
52
|
-
IO.foreach('/proc/meminfo').first(3)[-1].split[1].to_i
|
52
|
+
IO.foreach('/proc/meminfo'.freeze).first(3)[-1].split[1].to_i
|
53
53
|
end
|
54
54
|
|
55
55
|
##
|
@@ -59,7 +59,7 @@ module LinuxStat
|
|
59
59
|
# It retuns an Integer but if the info is not available, it will return nil.
|
60
60
|
def used
|
61
61
|
return nil unless meminfo?
|
62
|
-
memory = IO.foreach('/proc/meminfo').first(3)
|
62
|
+
memory = IO.foreach('/proc/meminfo'.freeze).first(3)
|
63
63
|
memory[0].split[1].to_i - memory[2].split[1].to_i
|
64
64
|
end
|
65
65
|
|
@@ -69,7 +69,7 @@ module LinuxStat
|
|
69
69
|
# It retuns an Integer but if the info is not available, it will return nil
|
70
70
|
def percent_used
|
71
71
|
return nil unless meminfo?
|
72
|
-
memory = IO.foreach('/proc/meminfo').first(3)
|
72
|
+
memory = IO.foreach('/proc/meminfo'.freeze).first(3)
|
73
73
|
total = memory[0].split[1].to_i
|
74
74
|
total.-(memory[2].split[1].to_i).*(100).fdiv(total).round(2)
|
75
75
|
end
|
@@ -80,13 +80,13 @@ module LinuxStat
|
|
80
80
|
# It retuns an Integer but if the info is not available, it will return nil
|
81
81
|
def percent_available
|
82
82
|
return nil unless meminfo?
|
83
|
-
memory = IO.foreach('/proc/meminfo').first(3)
|
83
|
+
memory = IO.foreach('/proc/meminfo'.freeze).first(3)
|
84
84
|
memory[2].split[1].to_i.*(100).fdiv(memory[0].split[1].to_i).round(2)
|
85
85
|
end
|
86
86
|
|
87
87
|
private
|
88
88
|
def meminfo?
|
89
|
-
@@readable ||= File.readable?('/proc/meminfo')
|
89
|
+
@@readable ||= File.readable?('/proc/meminfo'.freeze)
|
90
90
|
end
|
91
91
|
end
|
92
92
|
end
|
data/lib/linux_stat/mounts.rb
CHANGED
@@ -209,17 +209,17 @@ module LinuxStat
|
|
209
209
|
|
210
210
|
private
|
211
211
|
def mount_readable?
|
212
|
-
@@mount_readable ||= File.readable?('/proc/mounts')
|
212
|
+
@@mount_readable ||= File.readable?('/proc/mounts'.freeze)
|
213
213
|
end
|
214
214
|
|
215
215
|
def mounts
|
216
216
|
return [] unless mount_readable?
|
217
|
-
IO.readlines('/proc/mounts').each(&:strip!)
|
217
|
+
IO.readlines('/proc/mounts'.freeze).each(&:strip!)
|
218
218
|
end
|
219
219
|
|
220
220
|
def find_root
|
221
221
|
return [] unless mount_readable?
|
222
|
-
@@root ||= IO.foreach('/proc/mounts').find { |x| x.split[1] == '/'.freeze }.split
|
222
|
+
@@root ||= IO.foreach('/proc/mounts'.freeze).find { |x| x.split[1] == '/'.freeze }.split
|
223
223
|
end
|
224
224
|
|
225
225
|
def fs_info(dev)
|
data/lib/linux_stat/net.rb
CHANGED
@@ -86,13 +86,13 @@ module LinuxStat
|
|
86
86
|
|
87
87
|
data = IO.readlines(DEV).drop(2)
|
88
88
|
indices = find_index_of_bytes
|
89
|
-
data.reject! { |x| x.strip.start_with?('lo:') }
|
89
|
+
data.reject! { |x| x.strip.start_with?('lo:'.freeze) }
|
90
90
|
r, t = data.map { |x| x.split.values_at(*indices).map(&:to_i) }.transpose.map(&:sum)
|
91
91
|
|
92
92
|
sleep(interval)
|
93
93
|
|
94
94
|
data2 = IO.readlines(DEV).drop(2)
|
95
|
-
data2.reject! { |x| x.strip.start_with?('lo:') }
|
95
|
+
data2.reject! { |x| x.strip.start_with?('lo:'.freeze) }
|
96
96
|
r2, t2 = data2.map { |x| x.split.values_at(*indices).map(&:to_i) }.transpose.map(&:sum)
|
97
97
|
|
98
98
|
# Measure the difference
|
@@ -118,8 +118,8 @@ module LinuxStat
|
|
118
118
|
|
119
119
|
r.each_with_index { |x, i|
|
120
120
|
downcased = x.downcase
|
121
|
-
h.merge!(:r => i) if downcased.start_with?('receive')
|
122
|
-
h.merge!(:t => i) if downcased.start_with?('transmit')
|
121
|
+
h.merge!(:r => i) if downcased.start_with?('receive'.freeze)
|
122
|
+
h.merge!(:t => i) if downcased.start_with?('transmit'.freeze)
|
123
123
|
}
|
124
124
|
|
125
125
|
data_0 = data.next.gsub(?|.freeze, ' %'.freeze)
|
data/lib/linux_stat/os.rb
CHANGED
@@ -52,7 +52,7 @@ module LinuxStat
|
|
52
52
|
elsif v.key?(:DISTRIB_ID)
|
53
53
|
v[:DISTRIB_ID]
|
54
54
|
elsif File.readable?('/etc/issue'.freeze)
|
55
|
-
IO.read('/etc/issue'.freeze, encoding: 'ASCII-8bit').strip
|
55
|
+
IO.read('/etc/issue'.freeze, encoding: 'ASCII-8bit'.freeze).strip
|
56
56
|
else
|
57
57
|
'Unknown'.freeze
|
58
58
|
end
|
data/lib/linux_stat/process.rb
CHANGED
@@ -6,10 +6,17 @@ module LinuxStat
|
|
6
6
|
#
|
7
7
|
# The return type is an Array of Integers.
|
8
8
|
def list
|
9
|
-
Dir['/proc/*']
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
d = Dir['/proc/*'.freeze]
|
10
|
+
ret, i = [], -1
|
11
|
+
count = d.length
|
12
|
+
|
13
|
+
while(i += 1) < count
|
14
|
+
pid = File.split(d[i])[1]
|
15
|
+
pid_i = pid.to_i
|
16
|
+
ret << pid_i if pid_i.to_s == pid
|
17
|
+
end
|
18
|
+
|
19
|
+
ret
|
13
20
|
end
|
14
21
|
|
15
22
|
##
|
@@ -17,28 +24,42 @@ module LinuxStat
|
|
17
24
|
#
|
18
25
|
# The return type is Integer.
|
19
26
|
def count
|
20
|
-
list.
|
27
|
+
list.length
|
21
28
|
end
|
22
29
|
|
23
30
|
##
|
24
31
|
# Returns all the id of processes mapped with their names as a Hash.
|
25
32
|
def names
|
26
|
-
|
33
|
+
h, i = {}, -1
|
34
|
+
|
35
|
+
l = list
|
36
|
+
count = l.length
|
37
|
+
|
38
|
+
while(i += 1) < count
|
39
|
+
x = l[i]
|
40
|
+
|
27
41
|
begin
|
28
|
-
h.merge!( x => IO.foreach(
|
29
|
-
rescue
|
30
|
-
h
|
42
|
+
h.merge!( x => IO.foreach("/proc/#{x}/status").first.split[1])
|
43
|
+
rescue StandardError
|
31
44
|
end
|
32
|
-
|
45
|
+
end
|
46
|
+
h
|
33
47
|
end
|
34
48
|
|
35
49
|
##
|
36
50
|
# Returns all the id of processes mapped with their status as a Hash.
|
37
51
|
def types
|
38
|
-
|
52
|
+
h, i = {}, -1
|
53
|
+
|
54
|
+
l = list
|
55
|
+
count = l.length
|
56
|
+
|
57
|
+
while(i += 1) < count
|
58
|
+
x = l[i]
|
59
|
+
|
39
60
|
begin
|
40
61
|
h.merge!(x =>
|
41
|
-
case IO.
|
62
|
+
case IO.foreach("/proc/#{x}/stat", ' '.freeze).first(3)[-1][0]
|
42
63
|
when ?S.freeze then :sleeping
|
43
64
|
when ?I.freeze then :idle
|
44
65
|
when ?Z.freeze then :zombie
|
@@ -46,10 +67,11 @@ module LinuxStat
|
|
46
67
|
else :unknown
|
47
68
|
end
|
48
69
|
)
|
49
|
-
rescue
|
50
|
-
h
|
70
|
+
rescue StandardError
|
51
71
|
end
|
52
|
-
|
72
|
+
end
|
73
|
+
|
74
|
+
h
|
53
75
|
end
|
54
76
|
|
55
77
|
##
|
@@ -58,8 +80,8 @@ module LinuxStat
|
|
58
80
|
def sleeping
|
59
81
|
list.select { |x|
|
60
82
|
begin
|
61
|
-
IO.
|
62
|
-
rescue
|
83
|
+
IO.foreach("/proc/#{x}/stat", ' '.freeze).first(3)[-1][0] == ?S.freeze
|
84
|
+
rescue StandardError
|
63
85
|
nil
|
64
86
|
end
|
65
87
|
}
|
@@ -71,8 +93,8 @@ module LinuxStat
|
|
71
93
|
def idle
|
72
94
|
list.select { |x|
|
73
95
|
begin
|
74
|
-
IO.
|
75
|
-
rescue
|
96
|
+
IO.foreach("/proc/#{x}/stat", ' '.freeze).first(3)[-1][0] == ?I.freeze
|
97
|
+
rescue StandardError
|
76
98
|
nil
|
77
99
|
end
|
78
100
|
}
|
@@ -84,8 +106,8 @@ module LinuxStat
|
|
84
106
|
def zombie
|
85
107
|
list.select { |x|
|
86
108
|
begin
|
87
|
-
IO.
|
88
|
-
rescue
|
109
|
+
IO.foreach("/proc/#{x}/stat", ' '.freeze).first(3)[-1][0] == ?Z.freeze
|
110
|
+
rescue StandardError
|
89
111
|
nil
|
90
112
|
end
|
91
113
|
}
|
@@ -97,8 +119,8 @@ module LinuxStat
|
|
97
119
|
def running
|
98
120
|
list.select { |x|
|
99
121
|
begin
|
100
|
-
IO.
|
101
|
-
rescue
|
122
|
+
IO.foreach("/proc/#{x}/stat", ' '.freeze).first(3)[-1][0] == ?R.freeze
|
123
|
+
rescue StandardError
|
102
124
|
nil
|
103
125
|
end
|
104
126
|
}
|
data/lib/linux_stat/swap.rb
CHANGED
@@ -8,7 +8,7 @@ module LinuxStat
|
|
8
8
|
def list
|
9
9
|
return {} unless swaps_readable?
|
10
10
|
|
11
|
-
file = IO.readlines('/proc/swaps').drop(1)
|
11
|
+
file = IO.readlines('/proc/swaps'.freeze).drop(1)
|
12
12
|
file.reduce({}) do |h, x|
|
13
13
|
name, *stats = x.strip.split
|
14
14
|
h.merge!(name => stats.map! { |v| v.to_i.to_s == v ? v.to_i : v.to_sym })
|
@@ -20,7 +20,7 @@ module LinuxStat
|
|
20
20
|
#
|
21
21
|
# If the info isn't available, it will return an empty Hash.
|
22
22
|
def any?
|
23
|
-
!!IO.foreach('/proc/swaps').
|
23
|
+
!!IO.foreach('/proc/swaps'.freeze).first(2)[1]
|
24
24
|
end
|
25
25
|
|
26
26
|
# Show aggregated used and available swap.
|
@@ -114,7 +114,7 @@ module LinuxStat
|
|
114
114
|
def read_usage
|
115
115
|
return [[], []] unless swaps_readable?
|
116
116
|
|
117
|
-
val = IO.readlines('/proc/swaps').drop(1)
|
117
|
+
val = IO.readlines('/proc/swaps'.freeze).drop(1)
|
118
118
|
return [[], []] if val.empty?
|
119
119
|
|
120
120
|
val.map! { |x|
|
@@ -123,7 +123,7 @@ module LinuxStat
|
|
123
123
|
end
|
124
124
|
|
125
125
|
def swaps_readable?
|
126
|
-
@@swaps_readable ||= File.readable?('/proc/swaps')
|
126
|
+
@@swaps_readable ||= File.readable?('/proc/swaps'.freeze)
|
127
127
|
end
|
128
128
|
end
|
129
129
|
end
|
data/lib/linux_stat/user.rb
CHANGED
@@ -55,6 +55,7 @@ module LinuxStat
|
|
55
55
|
# But if the status isn't available it will return an empty Hash.
|
56
56
|
def gids
|
57
57
|
return {} unless passwd_readable?
|
58
|
+
|
58
59
|
passwd_splitted.reduce({}) { |h, x|
|
59
60
|
h.merge!(x[0].to_sym => x[3].to_i)
|
60
61
|
}
|
@@ -103,7 +104,7 @@ module LinuxStat
|
|
103
104
|
|
104
105
|
uid, gid = LinuxStat::Sysconf.get_uid, LinuxStat::Sysconf.get_gid
|
105
106
|
|
106
|
-
username = ''
|
107
|
+
username = ''.freeze
|
107
108
|
passwd.each { |x|
|
108
109
|
splitted = x.split(?:).freeze
|
109
110
|
if splitted[2].to_i == uid && splitted[3].to_i == gid
|
@@ -187,7 +188,7 @@ module LinuxStat
|
|
187
188
|
def username_by_gid(gid = get_gid)
|
188
189
|
return ''.freeze unless passwd_readable?
|
189
190
|
|
190
|
-
username = ''
|
191
|
+
username = ''.freeze
|
191
192
|
passwd.each do |x|
|
192
193
|
splitted = x.split(?:.freeze)
|
193
194
|
if splitted[2].to_i == gid
|
@@ -314,7 +315,7 @@ module LinuxStat
|
|
314
315
|
def home_by_gid(id = get_gid)
|
315
316
|
return ''.freeze unless passwd_readable?
|
316
317
|
|
317
|
-
home = ''
|
318
|
+
home = ''.freeze
|
318
319
|
passwd.each do |x|
|
319
320
|
splitted = x.split(?:.freeze)
|
320
321
|
|
data/lib/linux_stat/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linux_stat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sourav Goswami
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-12-
|
11
|
+
date: 2020-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Linux only, efficient linux system utilization reporting and system monitoring
|
14
14
|
gem
|