LinuxStat
Loading...
pacman -S gcc
You might also require ruby-dev in Debian based systems which provides support for ruby.h header file:apt install gcc
apt install ruby-dev
LinuxStat::USB
and/or LinuxStat::PCI
.
pacman -S hwids
apt install hwdata
And then execute:Gemfile gem 'linux_stat'
• Or install it yourself as:bundle install
gem install linux_stat
# File: bios.rb | Line: 58 # Definition: def date LinuxStat::BIOS.date() => "04/10/2017" # File: bios.rb | Line: 12 # Definition: def model LinuxStat::BIOS.model() => "Inspiron 5567" # File: bios.rb | Line: 29 # Definition: def vendor LinuxStat::BIOS.vendor() => "Dell Inc." # File: bios.rb | Line: 44 # Definition: def version LinuxStat::BIOS.version() => "1.1.2"
# File: battery.rb | Line: 107 # Definition: def charge LinuxStat::Battery.charge() => 100.0 # File: battery.rb | Line: 132 # Definition: def charge_full_design_wh LinuxStat::Battery.charge_full_design_wh() => 43.32 # File: battery.rb | Line: 151 # Definition: def charge_full_wh LinuxStat::Battery.charge_full_wh() => 23.29 # File: battery.rb | Line: 80 # Definition: def charging? LinuxStat::Battery.charging?() => true # File: battery.rb | Line: 201 # Definition: def devices_stat LinuxStat::Battery.devices_stat() => {:AC=>{:type=>"Mains", :online=>1}, :BAT0=>{:model=>"DELL 35RH35C", :manufacturer=>"SMP", :type=>"Battery", :status=>"Full", :capacity=>100, :voltage_min_design=>11.4, :charge_full_design=>3.8, :charge_full_design_wh=>43.32, :voltage_now=>12.316, :cha... # File: battery.rb | Line: 89 # Definition: def discharging? LinuxStat::Battery.discharging?() => false # File: battery.rb | Line: 98 # Definition: def full? LinuxStat::Battery.full?() => true # File: battery.rb | Line: 49 # Definition: def manufacturer LinuxStat::Battery.manufacturer() => "SMP" # File: battery.rb | Line: 38 # Definition: def model LinuxStat::Battery.model() => "DELL 35RH35C" # File: battery.rb | Line: 10 # Definition: def present? LinuxStat::Battery.present?() => true # File: battery.rb | Line: 18 # Definition: def stat LinuxStat::Battery.stat() => {:model=>"DELL 35RH35C", :manufacturer=>"SMP", :technology=>"Li-ion", :status=>"Full", :charge=>100.0, :charging=>true, :discharging=>false, :full=>true} # File: battery.rb | Line: 70 # Definition: def status LinuxStat::Battery.status() => "Full" # File: battery.rb | Line: 59 # Definition: def technology LinuxStat::Battery.technology() => "Li-ion" # File: battery.rb | Line: 170 # Definition: def voltage_now LinuxStat::Battery.voltage_now() => 12.316
# File: cpu.rb | Line: 323 # Definition: def available_governors LinuxStat::CPU.available_governors() => {"cpu0"=>["performance", "powersave"], "cpu1"=>["performance", "powersave"], "cpu2"=>["performance", "powersave"], "cpu3"=>["performance", "powersave"]} # File: cpu.rb | Line: 118 # Definition: def count LinuxStat::CPU.count() => 4 # File: cpu.rb | Line: 135 # Definition: def count_online LinuxStat::CPU.count_online() => 4 # File: cpu.rb | Line: 229 # Definition: def cur_freq LinuxStat::CPU.cur_freq() => {"cpu0"=>1999997, "cpu1"=>2000323, "cpu2"=>1999473, "cpu3"=>2000233} # File: cpu.rb | Line: 301 # Definition: def governor LinuxStat::CPU.governor() => {"cpu0"=>"performance", "cpu1"=>"performance", "cpu2"=>"performance", "cpu3"=>"performance"} # File: cpu.rb | Line: 384 # Definition: def hyperthreaded_core_list LinuxStat::CPU.hyperthreaded_core_list() => [3, 2] # File: cpu.rb | Line: 384 # Definition: def hyperthreaded_core_list LinuxStat::CPU.hyperthreaded_cores() => [3, 2] # File: cpu.rb | Line: 277 # Definition: def max_freq LinuxStat::CPU.max_freq() => {"cpu0"=>2000000, "cpu1"=>2000000, "cpu2"=>2000000, "cpu3"=>2000000} # File: cpu.rb | Line: 255 # Definition: def min_freq LinuxStat::CPU.min_freq() => {"cpu0"=>2000000, "cpu1"=>2000000, "cpu2"=>2000000, "cpu3"=>2000000} # File: cpu.rb | Line: 216 # Definition: def model LinuxStat::CPU.model() => "Intel(R) Core(TM) i3-6006U CPU @ 2.00GHz" # File: cpu.rb | Line: 195 # Definition: def offline LinuxStat::CPU.offline() => [] # File: cpu.rb | Line: 164 # Definition: def online LinuxStat::CPU.online() => [0, 1, 2, 3] # File: cpu.rb | Line: 343 # Definition: def physical_core_list LinuxStat::CPU.physical_core_list() => [1, 0] # File: cpu.rb | Line: 343 # Definition: def physical_core_list LinuxStat::CPU.physical_cores() => [1, 0] # File: cpu.rb | Line: 31 # Definition: def stat(sleep = ticks_to_ms_t5) LinuxStat::CPU.stat(sleep) => {0=>0.0, 1=>0.0, 2=>0.0, 3=>0.0, 4=>0.0} # File: cpu.rb | Line: 242 # Definition: def times LinuxStat::CPU.times() => [{:cpu=>"cpu", :user=>8.449999809265137, :nice=>0.09000000357627869, :system=>5.690000057220459, :idle=>239.32000732421875, :iowait=>3.930000066757202, :irq=>0.0, :softirq=>0.15000000596046448, :steal=>0.0, :guest=>0.0, :guest_nice=>0.0}, {:cpu=>"cpu0... # File: cpu.rb | Line: 95 # Definition: def total_usage(sleep = ticks_to_ms_t5) LinuxStat::CPU.total_usage(sleep) => 0.0 # File: cpu.rb | Line: 95 # Definition: def total_usage(sleep = ticks_to_ms_t5) LinuxStat::CPU.usage(sleep) => 0.0 # File: cpu.rb | Line: 31 # Definition: def stat(sleep = ticks_to_ms_t5) LinuxStat::CPU.usages(sleep) => {0=>0.0, 1=>0.0, 2=>0.0, 3=>0.0, 4=>0.0}
LinuxStat::FS.sectors(arg = "/") => nil LinuxStat::FS.stat(arg = "/") => {:block_size=>4096, :fragment_size=>4096, :blocks=>29291798, :block_free=>10730567, :block_avail_unpriv=>10730567, :inodes=>58612160, :free_inodes=>57844634, :filesystem_id=>2050, :mount_flags=>1024, :max_filename_length=>255} LinuxStat::FS.total_io(arg = "/") => []
# File: ftw.rb | Line: 96 # Definition: def count_directories(path = __dir__) LinuxStat::FTW.count_directories(path) => 0 # File: ftw.rb | Line: 81 # Definition: def count_files(path = __dir__) LinuxStat::FTW.count_files(path) => 19 # File: ftw.rb | Line: 36 # Definition: def stat_all(path = __dir__, flags = nil) LinuxStat::FTW.stat_all(path, flags) => {:value=>[{:type_flag=>:FTW_F, :level=>1, :st_size=>10416, :path=>"/home/sourav/.gem/ruby/3.0.0/gems/linux_stat-2.6.0/lib/linux_stat/battery.rb", :basename=>"battery.rb"}, {:type_flag=>:FTW_F, :level=>1, :st_size=>2100, :path=>"/home/sourav/.gem/ruby/... # File: ftw.rb | Line: 66 # Definition: def stat_files(path = __dir__) LinuxStat::FTW.stat_files(path) => {:value=>[{:type_flag=>:FTW_F, :level=>1, :st_size=>10416, :path=>"/home/sourav/.gem/ruby/3.0.0/gems/linux_stat-2.6.0/lib/linux_stat/battery.rb", :dirname=>"/home/sourav/.gem/ruby/3.0.0/gems/linux_stat-2.6.0/lib/linux_stat", :basename=>"battery.rb"},...
# File: filesystem.rb | Line: 94 # Definition: def available(fs = ?..freeze) LinuxStat::Filesystem.available(fs) => 43952402432 # File: filesystem.rb | Line: 60 # Definition: def free(fs = ?..freeze) LinuxStat::Filesystem.free(fs) => 43952402432 # File: filesystem.rb | Line: 118 # Definition: def io_total(path = LinuxStat::Mounts.root) LinuxStat::Filesystem.io_total(path) => {} # File: filesystem.rb | Line: 133 # Definition: def io_usage(path = LinuxStat::Mounts.root, interval = 0.1) LinuxStat::Filesystem.io_usage(path, interval) => {} # File: filesystem.rb | Line: 114 # Definition: def sector_size(path = LinuxStat::Mounts.root) LinuxStat::Filesystem.sector_size(path) => nil # File: filesystem.rb | Line: 114 # Definition: def sector_size(path = LinuxStat::Mounts.root) LinuxStat::Filesystem.sectors(path) => nil # File: filesystem.rb | Line: 21 # Definition: def stat(fs = ?..freeze) LinuxStat::Filesystem.stat(fs) => {:total=>119979204608, :free=>43952402432, :used=>76026802176} # File: filesystem.rb | Line: 110 # Definition: def stat_raw(fs = ?..freeze) LinuxStat::Filesystem.stat_raw(fs) => {:block_size=>4096, :fragment_size=>4096, :blocks=>29291798, :block_free=>10730567, :block_avail_unpriv=>10730567, :inodes=>58612160, :free_inodes=>57844634, :filesystem_id=>2050, :mount_flags=>1024, :max_filename_length=>255} # File: filesystem.rb | Line: 41 # Definition: def total(fs = ?..freeze) LinuxStat::Filesystem.total(fs) => 119979204608 # File: filesystem.rb | Line: 75 # Definition: def used(fs = ?..freeze) LinuxStat::Filesystem.used(fs) => 76026802176
# File: kernel.rb | Line: 88 # Definition: def build_date LinuxStat::Kernel.build_date() => 2022-10-04 09:01:12 +0000 # File: kernel.rb | Line: 142 # Definition: def build_date_string LinuxStat::Kernel.build_date_string() => "04 Oct 2022 09:01:12 +0000" # File: kernel.rb | Line: 23 # Definition: def build_user LinuxStat::Kernel.build_user() => "souravgoswami@archlinux" # File: kernel.rb | Line: 181 # Definition: def ticks LinuxStat::Kernel.clk_tck() => 100 # File: kernel.rb | Line: 35 # Definition: def compiler LinuxStat::Kernel.compiler() => [:gcc, "12.2.0"] # File: kernel.rb | Line: 57 # Definition: def compiler_version LinuxStat::Kernel.compiler_version() => "12.2.0" # File: kernel.rb | Line: 12 # Definition: def version LinuxStat::Kernel.release() => "6.0.0-skylake-xanmod1-1" # File: kernel.rb | Line: 171 # Definition: def string LinuxStat::Kernel.string() => "Linux version 6.0.0-skylake-xanmod1-1 (souravgoswami@archlinux) (gcc (GCC) 12.2.0, GNU ld (GNU Binutils) 2.39.0) #1 SMP PREEMPT_DYNAMIC Tue, 04 Oct 2022 09:01:12 +0000" # File: kernel.rb | Line: 181 # Definition: def ticks LinuxStat::Kernel.ticks() => 100 # File: kernel.rb | Line: 12 # Definition: def version LinuxStat::Kernel.version() => "6.0.0-skylake-xanmod1-1"
# File: memory.rb | Line: 62 # Definition: def available LinuxStat::Memory.available() => 7154200 # File: memory.rb | Line: 52 # Definition: def free LinuxStat::Memory.free() => 7022880 # File: memory.rb | Line: 93 # Definition: def percent_available LinuxStat::Memory.percent_available() => 89.89 # File: memory.rb | Line: 82 # Definition: def percent_used LinuxStat::Memory.percent_used() => 10.11 # File: memory.rb | Line: 13 # Definition: def stat LinuxStat::Memory.stat() => {:total=>7958588, :used=>804388, :available=>7154200, :percent_used=>10.11, :percent_available=>89.89} # File: memory.rb | Line: 42 # Definition: def total LinuxStat::Memory.total() => 7958588 # File: memory.rb | Line: 72 # Definition: def used LinuxStat::Memory.used() => 804388
# File: mounts.rb | Line: 181 # Definition: def device_stat(dev = root) LinuxStat::Mounts.device_stat(dev) => {:mountpoint=>"/", :total=>119979204608, :free=>43952402432, :available=>43952402432, :used=>76026802176, :percent_used=>63.37, :percent_free=>36.63, :percent_available=>36.63} # File: mounts.rb | Line: 139 # Definition: def devices_stat LinuxStat::Mounts.devices_stat() => {"proc"=>{:mountpoint=>"/proc", :total=>0, :free=>0, :available=>0, :used=>0, :percent_used=>NaN, :percent_free=>NaN, :percent_available=>NaN}, "sys"=>{:mountpoint=>"/sys", :total=>0, :free=>0, :available=>0, :used=>0, :percent_used=>NaN, :percent_fre... # File: mounts.rb | Line: 13 # Definition: def list LinuxStat::Mounts.list() => ["proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0", "sys /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0", "dev /dev devtmpfs rw,nosuid,relatime,size=3969220k,nr_inodes=992305,mode=755,inode64 0 0", "run /run tmpfs rw,nosuid,nodev,relatime,mode=755... # File: mounts.rb | Line: 22 # Definition: def list_devices LinuxStat::Mounts.list_devices() => ["proc", "sys", "dev", "run", "/dev/sda2", "securityfs", "tmpfs", "devpts", "cgroup2", "pstore", "bpf", "systemd-1", "mqueue", "hugetlbfs", "debugfs", "configfs", "fusectl", "ramfs", "tmpfs", "tmpfs", "tmpfs", "gvfsd-fuse", "binfmt_misc"] # File: mounts.rb | Line: 111 # Definition: def list_devices_mount_point LinuxStat::Mounts.list_devices_mount_point() => {"proc"=>"/proc", "sys"=>"/sys", "dev"=>"/dev", "run"=>"/run", "/dev/sda2"=>"/", "securityfs"=>"/sys/kernel/security", "tmpfs"=>"/run/user/1000", "devpts"=>"/dev/pts", "cgroup2"=>"/sys/fs/cgroup", "pstore"=>"/sys/fs/pstore", "bpf"=>"/sys/fs/bpf", "sys... # File: mounts.rb | Line: 82 # Definition: def mount_point(dev = root) LinuxStat::Mounts.mount_point(dev) => "/" # File: mounts.rb | Line: 31 # Definition: def root LinuxStat::Mounts.root() => "/dev/sda2" # File: mounts.rb | Line: 40 # Definition: def root_fs LinuxStat::Mounts.root_fs() => "xfs" # File: mounts.rb | Line: 49 # Definition: def root_mount_options LinuxStat::Mounts.root_mount_options() => "rw,noatime,attr2,inode64,logbufs=8,logbsize=32k,noquota" # File: mounts.rb | Line: 58 # Definition: def tmpfs LinuxStat::Mounts.tmpfs() => {"/dev/shm"=>"tmpfs /dev/shm tmpfs rw,nosuid,nodev,inode64 0 0", "/ramdisk"=>"tmpfs /ramdisk tmpfs rw,nosuid,nodev,noatime,size=4194304k,inode64 0 0", "/tmp"=>"tmpfs /tmp tmpfs rw,nosuid,nodev,noatime,size=4194304k,inode64 0 0", "/run/user/1000"=>"tmp...
# File: net.rb | Line: 86 # Definition: def usage(interval = 0.1) LinuxStat::Net.current_usage(interval) => {:received=>1320.0, :transmitted=>17320.0} # File: net.rb | Line: 12 # Definition: def ipv4_private LinuxStat::Net.ipv4_private() => "192.168.0.105" # File: net.rb | Line: 27 # Definition: def total_bytes LinuxStat::Net.total_bytes() => {:received=>32863, :transmitted=>48937} # File: net.rb | Line: 45 # Definition: def total_bytes_received LinuxStat::Net.total_bytes_received() => 32863 # File: net.rb | Line: 58 # Definition: def total_bytes_transmitted LinuxStat::Net.total_bytes_transmitted() => 49195 # File: net.rb | Line: 86 # Definition: def usage(interval = 0.1) LinuxStat::Net.usage(interval) => {:received=>1320.0, :transmitted=>4060.0}
# File: os.rb | Line: 133 # Definition: def bits LinuxStat::OS.bits() => 64 # File: os.rb | Line: 88 # Definition: def version LinuxStat::OS.distrib_version() => "rolling" # File: os.rb | Line: 50 # Definition: def distribution LinuxStat::OS.distribution() => "Arch Linux" # File: os.rb | Line: 121 # Definition: def hostname LinuxStat::OS.hostname() => "archlinux-laptop" # File: os.rb | Line: 208 # Definition: def loadavg LinuxStat::OS.loadavg() => {1=>0.15283203125, 5=>0.06640625, 15=>0.021484375} # File: os.rb | Line: 39 # Definition: def lsb_release LinuxStat::OS.lsb_release() => {:DISTRIB_ID=>"Arch", :DISTRIB_RELEASE=>"rolling", :DISTRIB_DESCRIPTION=>"Arch Linux"} # File: os.rb | Line: 104 # Definition: def machine LinuxStat::OS.machine() => "x86_64" # File: os.rb | Line: 112 # Definition: def nodename LinuxStat::OS.nodename() => "archlinux-laptop" # File: os.rb | Line: 23 # Definition: def os_release LinuxStat::OS.os_release() => {:NAME=>"Arch Linux", :PRETTY_NAME=>"Arch Linux", :ID=>"arch", :BUILD_ID=>"rolling", :ANSI_COLOR=>"38;2;23;147;209", :HOME_URL=>"https://archlinux.org/", :DOCUMENTATION_URL=>"https://wiki.archlinux.org/", :SUPPORT_URL=>"https://bbs.archlinux.org/", :B... # File: os.rb | Line: 150 # Definition: def uptime LinuxStat::OS.uptime() => {:hour=>0, :minute=>1, :second=>5, :jiffy=>81} # File: os.rb | Line: 180 # Definition: def uptime_f LinuxStat::OS.uptime_f() => 65.82 # File: os.rb | Line: 191 # Definition: def uptime_i LinuxStat::OS.uptime_i() => 66 # File: os.rb | Line: 88 # Definition: def version LinuxStat::OS.version() => "rolling"
# File: pci.rb | Line: 216 # Definition: def count LinuxStat::PCI.count() => 17 # File: pci.rb | Line: 216 # Definition: def count LinuxStat::PCI.count_devices() => 17 # File: pci.rb | Line: 54 # Definition: def devices_info(hwdata: true) LinuxStat::PCI.devices_info(hwdata:) => [{:id=>"8086:1904", :vendor=>"8086", :device=>"1904", :irq=>0, :kernel_driver=>"skl_uncore", :hwdata=>{:vendor=>"Intel Corporation", :product=>"Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers"}}, {:id=>"8086:1916", :vendor... # File: pci.rb | Line: 130 # Definition: def devices_stat(hwdata: true) LinuxStat::PCI.devices_stat(hwdata:) => [{:path=>"/sys/bus/pci/devices/0000:00:00.0/", :id=>"8086:1904", :vendor=>"8086", :device=>"1904", :sub_vendor=>"1028", :sub_device=>"077d", :kernel_driver=>"skl_uncore", :revision=>"0x08", :irq=>0, :enable=>false, :hwdata=>{:vendor=>"Intel Corporatio... # File: pci.rb | Line: 264 # Definition: def hwdata_file LinuxStat::PCI.hwdata_file() => "/usr/share/hwdata/pci.ids" # File: pci.rb | Line: 253 # Definition: def hwdata_file_set? LinuxStat::PCI.hwdata_file_set?() => true # File: pci.rb | Line: 280 # Definition: def initialize_hwdata LinuxStat::PCI.initialize_hwdata() => false
# File: prettify_bytes.rb | Line: 92 # Definition: def convert_binary(n, precision: 2) LinuxStat::PrettifyBytes.convert_binary(n = 270537231775630, precision:) => "246.05 tebibytes" # File: prettify_bytes.rb | Line: 48 # Definition: def convert_decimal(n, precision: 2) LinuxStat::PrettifyBytes.convert_decimal(n = 762687423630499, precision:) => "762.69 terabytes" # File: prettify_bytes.rb | Line: 182 # Definition: def convert_short_binary(n, precision: 2) LinuxStat::PrettifyBytes.convert_short_binary(n = 943065038502784, precision:) => "857.71 TiB" # File: prettify_bytes.rb | Line: 136 # Definition: def convert_short_decimal(n, precision: 2) LinuxStat::PrettifyBytes.convert_short_decimal(n = 81939818056567, precision:) => "81.94 TB"
LinuxStat::ProcFS.cpu_times() => [{:cpu=>"cpu", :user=>8.720000267028809, :nice=>0.09000000357627869, :system=>5.710000038146973, :idle=>242.02000427246094, :iowait=>3.940000057220459, :irq=>0.0, :softirq=>0.15000000596046448, :steal=>0.0, :guest=>0.0, :guest_nice=>0.0}, {:cpu=>"cpu0... LinuxStat::ProcFS.last_pid() => 1002 LinuxStat::ProcFS.list_process() => [70, 73, 75, 77, 78, 79, 80, 81, 82, 83, 88, 94, 95, 96, 97, 146, 147, 166, 167, 176, 184, 186, 188, 189, 190, 197, 198, 199, 200, 201, 202, 203, 204, 232, 240, 243, 244, 245, 246, 247, 250, 296, 305, 306, 307, 321, 365, 377, 386, 387, 388, 391, 393,... LinuxStat::ProcFS.uptime_f() => 66.08
# File: process.rb | Line: 47 # Definition: def cmdlines LinuxStat::Process.cmdlines() => {70=>"", 73=>"", 75=>"", 77=>"", 78=>"", 79=>"", 80=>"", 81=>"", 82=>"", 83=>"", 88=>"", 94=>"", 95=>"", 96=>"", 97=>"", 146=>"", 147=>"", 166=>"", 167=>"", 176=>"", 184=>"", 186=>"", 188=>"", 189=>"", 190=>"", 197=>"", 198=>"", 199=>"", 200=>"", 201=... # File: process.rb | Line: 19 # Definition: def count LinuxStat::Process.count() => 174 # File: process.rb | Line: 110 # Definition: def idle LinuxStat::Process.idle() => [70, 73, 75, 79, 81, 82, 83, 88, 94, 95, 96, 97, 146, 147, 166, 167, 176, 186, 189, 190, 197, 198, 199, 200, 201, 202, 203, 240, 243, 244, 245, 246, 305, 306, 321, 377, 386, 387, 388, 396, 402, 407, 425, 428, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 2... # File: process.rb | Line: 150 # Definition: def last_pid LinuxStat::Process.last_pid() => 1002 # File: process.rb | Line: 11 # Definition: def list LinuxStat::Process.list() => [70, 73, 75, 77, 78, 79, 80, 81, 82, 83, 88, 94, 95, 96, 97, 146, 147, 166, 167, 176, 184, 186, 188, 189, 190, 197, 198, 199, 200, 201, 202, 203, 204, 232, 240, 243, 244, 245, 246, 247, 250, 296, 305, 306, 307, 321, 365, 377, 386, 387, 388, 391, 393,... # File: process.rb | Line: 26 # Definition: def names LinuxStat::Process.names() => {70=>"kthrotld", 73=>"kworker/0:2-events", 75=>"kworker/3:3-events", 77=>"irq/122-aerdrv", 78=>"irq/123-aerdrv", 79=>"acpi_thermal_pm", 80=>"xenbus_probe", 81=>"kworker/2:1H-events_highpri", 82=>"mld", 83=>"ipv6_addrconf", 88=>"kstrp", 94=>"zswap1", 9... # File: process.rb | Line: 128 # Definition: def running LinuxStat::Process.running() => [999] # File: process.rb | Line: 101 # Definition: def sleeping LinuxStat::Process.sleeping() => [77, 78, 80, 184, 188, 204, 232, 247, 250, 296, 307, 365, 391, 393, 394, 400, 401, 403, 416, 421, 424, 427, 446, 477, 485, 486, 492, 499, 515, 520, 527, 533, 535, 541, 542, 555, 562, 564, 575, 577, 580, 584, 588, 593, 594, 597, 598, 620, 621, 623, 625... # File: process.rb | Line: 137 # Definition: def stopped LinuxStat::Process.stopped() => [] # File: process.rb | Line: 68 # Definition: def types LinuxStat::Process.types() => {70=>:idle, 73=>:idle, 75=>:idle, 77=>:sleeping, 78=>:sleeping, 79=>:idle, 80=>:sleeping, 81=>:idle, 82=>:idle, 83=>:idle, 88=>:idle, 94=>:idle, 95=>:idle, 96=>:idle, 97=>:sleeping, 146=>:idle, 147=>:idle, 166=>:idle, 167=>:idle, 176=>:idle, 184=>:sle... # File: process.rb | Line: 119 # Definition: def zombie LinuxStat::Process.zombie() => []
# File: process_info.rb | Line: 61 # Definition: def cmdline(pid = $$) LinuxStat::ProcessInfo.cmdline(pid) => "/usr/bin/ruby /home/sourav/.gem/ruby/3.0.0/bin/linuxstat.rb -html" # File: process_info.rb | Line: 87 # Definition: def command_name(pid = $$) LinuxStat::ProcessInfo.command_name(pid) => "ruby" # File: process_info.rb | Line: 610 # Definition: def nproc(pid = $$) LinuxStat::ProcessInfo.count_cpu(pid) => 4 # File: process_info.rb | Line: 280 # Definition: def cpu_stat(pid: $$, sleep: ticks_to_ms_t5) LinuxStat::ProcessInfo.cpu_stat(pid:, sleep:) => {:cpu_usage=>0.0, :threads=>0, :last_executed_cpu=>0} # File: process_info.rb | Line: 621 # Definition: def cpu_time(pid = $$) LinuxStat::ProcessInfo.cpu_time(pid) => 0.4699999988079071 # File: process_info.rb | Line: 636 # Definition: def cpu_times(pid = $$) LinuxStat::ProcessInfo.cpu_times(pid) => {:hour=>0, :minute=>0, :second=>0, :jiffy=>46} # File: process_info.rb | Line: 340 # Definition: def cpu_usage(pid: $$, sleep: ticks_to_ms_t5) LinuxStat::ProcessInfo.cpu_usage(pid:, sleep:) => 0.0 # File: process_info.rb | Line: 450 # Definition: def gid(pid = $$) LinuxStat::ProcessInfo.gid(pid) => {:real=>1000, :effective=>1000, :saved_set=>1000, :filesystem_uid=>1000} # File: process_info.rb | Line: 416 # Definition: def last_executed_cpu(pid = $$) LinuxStat::ProcessInfo.last_executed_cpu(pid) => 2 # File: process_info.rb | Line: 151 # Definition: def mem_stat(pid = $$) LinuxStat::ProcessInfo.mem_stat(pid) => {:memory=>34701312, :virtual_memory=>98459648, :resident_memory=>41041920, :shared_memory=>6340608} # File: process_info.rb | Line: 171 # Definition: def memory(pid = $$) LinuxStat::ProcessInfo.memory(pid) => 34701.312 # File: process_info.rb | Line: 580 # Definition: def nice(pid = $$) LinuxStat::ProcessInfo.nice(pid) => 0 # File: process_info.rb | Line: 610 # Definition: def nproc(pid = $$) LinuxStat::ProcessInfo.nproc(pid) => 4 # File: process_info.rb | Line: 471 # Definition: def owner(pid = $$) LinuxStat::ProcessInfo.owner(pid) => "sourav" # File: process_info.rb | Line: 112 # Definition: def process_name(pid = $$) LinuxStat::ProcessInfo.process_name(pid) => "linuxstat.rb" # File: process_info.rb | Line: 213 # Definition: def resident_memory(pid = $$) LinuxStat::ProcessInfo.resident_memory(pid) => 41041.92 # File: process_info.rb | Line: 542 # Definition: def running_time(pid = $$) LinuxStat::ProcessInfo.running_time(pid) => 3.27 # File: process_info.rb | Line: 234 # Definition: def shared_memory(pid = $$) LinuxStat::ProcessInfo.shared_memory(pid) => 6340.608 # File: process_info.rb | Line: 521 # Definition: def start_time(pid = $$) LinuxStat::ProcessInfo.start_time(pid) => 2022-10-18 12:42:10 +0530 # File: process_info.rb | Line: 493 # Definition: def start_time_epoch(pid = $$) LinuxStat::ProcessInfo.start_time_epoch(pid) => 1666077130 # File: process_info.rb | Line: 567 # Definition: def state(pid = $$) LinuxStat::ProcessInfo.state(pid) => "R" # File: process_info.rb | Line: 370 # Definition: def thread_usage(pid: $$, sleep: ticks_to_ms_t5) LinuxStat::ProcessInfo.thread_usage(pid:, sleep:) => 0.0 # File: process_info.rb | Line: 395 # Definition: def threads(pid = $$) LinuxStat::ProcessInfo.threads(pid) => 1 # File: process_info.rb | Line: 30 # Definition: def total_io(pid = $$) LinuxStat::ProcessInfo.total_io(pid) => {:read_bytes=>4444160, :write_bytes=>0} # File: process_info.rb | Line: 426 # Definition: def uid(pid = $$) LinuxStat::ProcessInfo.uid(pid) => {:real=>1000, :effective=>1000, :saved_set=>1000, :filesystem_uid=>1000} # File: process_info.rb | Line: 192 # Definition: def virtual_memory(pid = $$) LinuxStat::ProcessInfo.virtual_memory(pid) => 98459.648
# File: swap.rb | Line: 25 # Definition: def any? LinuxStat::Swap.any?() => true # File: swap.rb | Line: 86 # Definition: def available LinuxStat::Swap.available() => 6291452 # File: swap.rb | Line: 75 # Definition: def free LinuxStat::Swap.free() => 6291452 # File: swap.rb | Line: 10 # Definition: def list LinuxStat::Swap.list() => {"/dev/zram0"=>[:partition, 6291452, 0, -2]} # File: swap.rb | Line: 129 # Definition: def percent_available LinuxStat::Swap.percent_available() => 100.0 # File: swap.rb | Line: 109 # Definition: def percent_used LinuxStat::Swap.percent_used() => 0.0 # File: swap.rb | Line: 36 # Definition: def stat LinuxStat::Swap.stat() => {:total=>6291452, :used=>0, :available=>6291452, :percent_used=>0.0, :percent_available=>100.0} # File: swap.rb | Line: 64 # Definition: def total LinuxStat::Swap.total() => 6291452 # File: swap.rb | Line: 100 # Definition: def used LinuxStat::Swap.used() => 0
LinuxStat::Sysconf.child_max() => 31009 LinuxStat::Sysconf.expr_nest_max() => 32 LinuxStat::Sysconf.get_euid() => 1000 LinuxStat::Sysconf.get_gid() => 1000 LinuxStat::Sysconf.get_login() => "sourav" LinuxStat::Sysconf.get_uid() => 1000 LinuxStat::Sysconf.get_user() => "sourav" LinuxStat::Sysconf.hostname() => "archlinux-laptop" LinuxStat::Sysconf.hostname_max() => 64 LinuxStat::Sysconf.line_max() => 2048 LinuxStat::Sysconf.login_name_max() => 256 LinuxStat::Sysconf.open_max() => 1024 LinuxStat::Sysconf.pagesize() => 4096 LinuxStat::Sysconf.posix_version() => 200809 LinuxStat::Sysconf.processor_configured() => 4 LinuxStat::Sysconf.processor_online() => 4 LinuxStat::Sysconf.sc_clk_tck() => 100 LinuxStat::Sysconf.stream_max() => 16 LinuxStat::Sysconf.tty_name_max() => 32
LinuxStat::Sysinfo.bufferram() => 1925120 LinuxStat::Sysinfo.freehigh() => 0 LinuxStat::Sysinfo.freeram() => 7173218304 LinuxStat::Sysinfo.freeswap() => 6442446848 LinuxStat::Sysinfo.loads() => [0.15283203125, 0.06640625, 0.021484375] LinuxStat::Sysinfo.sharedram() => 78700544 LinuxStat::Sysinfo.stat() => {:totalram=>8149594112, :freeram=>7173218304, :sharedram=>78700544, :bufferram=>1925120, :totalswap=>6442446848, :freeswap=>6442446848, :totalhigh=>0, :freehigh=>0, :uptime=>67, :loads=>[0.15283203125, 0.06640625, 0.021484375]} LinuxStat::Sysinfo.totalhigh() => 0 LinuxStat::Sysinfo.totalram() => 8149594112 LinuxStat::Sysinfo.totalswap() => 6442446848 LinuxStat::Sysinfo.uptime() => 67
# File: thermal.rb | Line: 59 # Definition: def count_fans LinuxStat::Thermal.count_fans() => 1 # File: thermal.rb | Line: 49 # Definition: def count_sensors LinuxStat::Thermal.count_sensors() => 8 # File: thermal.rb | Line: 41 # Definition: def fans LinuxStat::Thermal.fans() => [{:path=>"/sys/class/hwmon/hwmon4", :name=>"dell_smm", :label=>"Processor Fan", :rpm=>0, :temp_crit=>4900}] # File: thermal.rb | Line: 23 # Definition: def temperatures LinuxStat::Thermal.temperatures() => [{:path=>"/sys/class/hwmon/hwmon1", :name=>"acpitz", :label=>nil, :temperature=>25.0, :temp_crit=>nil}, {:path=>"/sys/class/hwmon/hwmon3", :name=>"pch_skylake", :label=>nil, :temperature=>36.0, :temp_crit=>nil}, {:path=>"/sys/class/hwmon/hwmon4", :nam...
# File: usb.rb | Line: 139 # Definition: def count LinuxStat::USB.count() => 5 # File: usb.rb | Line: 139 # Definition: def count LinuxStat::USB.count_devices() => 5 # File: usb.rb | Line: 49 # Definition: def devices_stat(hwdata: true) LinuxStat::USB.devices_stat(hwdata:) => [{:path=>"/sys/bus/usb/devices/1-5/", :id=>"0c45:6a06", :vendor_id=>"0c45", :product_id=>"6a06", :bus_num=>1, :dev_num=>2, :hwdata=>{:vendor=>"Microdia", :product=>nil}, :product=>"Integrated_Webcam_HD", :manufacturer=>"CNFFH37N1511820000HE", :removab... # File: usb.rb | Line: 179 # Definition: def hwdata_file LinuxStat::USB.hwdata_file() => "/usr/share/hwdata/usb.ids" # File: usb.rb | Line: 168 # Definition: def hwdata_file_set? LinuxStat::USB.hwdata_file_set?() => true # File: usb.rb | Line: 195 # Definition: def initialize_hwdata LinuxStat::USB.initialize_hwdata() => false
LinuxStat::Uname.machine() => "x86_64" LinuxStat::Uname.nodename() => "archlinux-laptop" LinuxStat::Uname.release() => "6.0.0-skylake-xanmod1-1" LinuxStat::Uname.sysname() => "Linux" LinuxStat::Uname.version() => "#1 SMP PREEMPT_DYNAMIC Tue, 04 Oct 2022 09:01:12 +0000"
# File: user.rb | Line: 107 # Definition: def get_user LinuxStat::User.get_current_user() => "sourav" # File: user.rb | Line: 146 # Definition: def get_euid LinuxStat::User.get_euid() => 1000 # File: user.rb | Line: 138 # Definition: def get_gid LinuxStat::User.get_gid() => 1000 # File: user.rb | Line: 161 # Definition: def get_login LinuxStat::User.get_login() => "sourav" # File: user.rb | Line: 130 # Definition: def get_uid LinuxStat::User.get_uid() => 1000 # File: user.rb | Line: 107 # Definition: def get_user LinuxStat::User.get_user() => "sourav" # File: user.rb | Line: 224 # Definition: def gid_by_username(username = get_user) LinuxStat::User.gid_by_username(username) => 1000 # File: user.rb | Line: 62 # Definition: def gids LinuxStat::User.gids() => {:root=>0, :bin=>1, :daemon=>2, :mail=>12, :ftp=>11, :http=>33, :nobody=>65534, :dbus=>81, :"systemd-journal-remote"=>982, :"systemd-network"=>981, :"systemd-resolve"=>980, :"systemd-timesync"=>979, :"systemd-coredump"=>978, :uuidd=>68, :avahi=>977, :... # File: user.rb | Line: 323 # Definition: def home_by_gid(id = get_gid) LinuxStat::User.home_by_gid(id) => "/home/sourav" # File: user.rb | Line: 275 # Definition: def home_by_username(user = get_user) LinuxStat::User.home_by_username(user) => "/home/sourav" # File: user.rb | Line: 80 # Definition: def home_directories LinuxStat::User.home_directories() => {:root=>"/root", :bin=>"/", :daemon=>"/", :mail=>"/var/spool/mail", :ftp=>"/srv/ftp", :http=>"/srv/http", :nobody=>"/", :dbus=>"/", :"systemd-journal-remote"=>"/", :"systemd-network"=>"/", :"systemd-resolve"=>"/", :"systemd-timesync"=>"/", :"systemd-c... # File: user.rb | Line: 302 # Definition: def homes_by_uid(id = get_uid) LinuxStat::User.homes_by_uid(id) => ["/home/sourav"] # File: user.rb | Line: 25 # Definition: def ids LinuxStat::User.ids() => {:root=>{:uid=>0, :gid=>0}, :bin=>{:uid=>1, :gid=>1}, :daemon=>{:uid=>2, :gid=>2}, :mail=>{:uid=>8, :gid=>12}, :ftp=>{:uid=>14, :gid=>11}, :http=>{:uid=>33, :gid=>33}, :nobody=>{:uid=>65534, :gid=>65534}, :dbus=>{:uid=>81, :gid=>81}, :"systemd-journal... # File: user.rb | Line: 13 # Definition: def list LinuxStat::User.list() => ["root", "bin", "daemon", "mail", "ftp", "http", "nobody", "dbus", "systemd-journal-remote", "systemd-network", "systemd-resolve", "systemd-timesync", "systemd-coredump", "uuidd", "avahi", "colord", "polkitd", "rtkit", "usbmux", "lxdm", "sourav", "cup... # File: user.rb | Line: 253 # Definition: def uid_by_username(username = get_user) LinuxStat::User.uid_by_username(username) => 1000 # File: user.rb | Line: 44 # Definition: def uids LinuxStat::User.uids() => {:root=>0, :bin=>1, :daemon=>2, :mail=>8, :ftp=>14, :http=>33, :nobody=>65534, :dbus=>81, :"systemd-journal-remote"=>982, :"systemd-network"=>981, :"systemd-resolve"=>980, :"systemd-timesync"=>979, :"systemd-coredump"=>978, :uuidd=>68, :avahi=>977, :c... # File: user.rb | Line: 196 # Definition: def username_by_gid(gid = get_gid) LinuxStat::User.username_by_gid(gid) => "sourav" # File: user.rb | Line: 178 # Definition: def usernames_by_uid(uid = get_uid) LinuxStat::User.usernames_by_uid(uid) => ["sourav"]
LinuxStat::Net.total_bytes_received
) is 1000 bytes, and if 0.1 seconds ago, it was 100 bytes, that means 900 bytes was received in 0.1 seconds.
That means the current speed is 9000 bytes or 9 kB/s.
LinuxStat::CPU.stat(0.1) => {0=>7.69, 1=>0.0, 2=>0.0, 3=>18.18, 4=>10.0}This will sleep for 0.1 seconds. To be reliable, use a time like 0.05 seconds or so.
#!/usr/bin/ruby require 'linux_stat' usages = [] thread = Thread.new { } counter = 0 while true thread = Thread.new { usages = LinuxStat::CPU.usages(0.5).values } unless thread.alive? # clears the screen and prints the info puts "\e[2J\e[H\e[3J"\ "#{counter += 1}\n"\ "\e[1;33mTotal CPU Usage:\e[0m #{usages[0]}%\n"\ "#{usages[1..-1].to_a.map.with_index { |x, i| "\e[1;33mCore #{i}\e[0m => #{x}%\n" }.join}"\ "Total Download: #{LinuxStat::PrettifyBytes.convert_decimal LinuxStat::Net.total_bytes_received}\n"\ "Total Upload: #{LinuxStat::PrettifyBytes.convert_decimal LinuxStat::Net.total_bytes_transmitted}" endThis will not wait in every loop for 0.5 seconds, but it will not update the cpu usage in every loop either.
linuxstat.rb
command to test what method takes what time measured in microseconds.
There are confusingly 6 different methods to count the number of CPU. But they are here for a reason!
LinuxStat::CPU.count()
:
sysconf(_SC_NPROCESSORS_CONF)
LinuxStat::ProcessInfo.nproc(pid = $$)
:
LinuxStat::ProcessInfo.count_cpu()
]
Or with argument:ruby -r linux_stat -e "puts LS::ProcessInfo.nproc" 4taskset -c 0 ruby -r linux_stat -e "puts LS::ProcessInfo.nproc" 1taskset -c 0-1 ruby -r linux_stat -e "puts LS::ProcessInfo.nproc" 2taskset -c 0-1,3 ruby -r linux_stat -e "puts LS::ProcessInfo.nproc" 3taskset -c 0-1,3 ruby -r linux_stat -e "puts LS::ProcessInfo.nproc " 3
irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::ProcessInfo.command_name 4775 => "electron" irb(main):003:0> LinuxStat::ProcessInfo.nproc 4775 => 43. The
LinuxStat::CPU.online()
:
irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::CPU.online => [0, 1, 3]By using
LinuxStat::CPU.online.count
you count the actual online CPU on your system.
LinuxStat::CPU.count_online
LinuxStat::CPU.offline()
:
irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::CPU.offline => [2]
LinuxStat::Sysconf.processor_configured()
:
LinuxStat::Sysconf.processor_online()
:
To see the free and total space of a thumbdrive:irb irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::Filesystem.free('/').fdiv(1024 ** 3).to_s << " GiB" => "35.666873931884766 GiB"
All the methods LinuxStat::ProcessInfo can take an argument containing the Process ID of a process.irb irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::Mounts.list.find { |x| x.include?('/run/media/sourav') }.split[1] => "/run/media/sourav/5c2b7af7-d4c3-4ab4-a035-06d18ffc8e6f" irb(main):003:0> thumbdrive = _ => "/run/media/sourav/5c2b7af7-d4c3-4ab4-a035-06d18ffc8e6f" irb(main):004:0> LinuxStat::Filesystem.free(thumbdrive).fdiv(1024 ** 3).to_s << " GiB" => "2.504791259765625 GiB" irb(main):005:0> LinuxStat::Filesystem.total(thumbdrive).fdiv(1024 ** 3).to_s << " GiB" => "29.305004119873047 GiB"
LinuxStat::Process.names.find { |x| x[1].include? 'firefox' }[0] => 770 # but this differs all the time2. Get the CPU usage:
$ irb irb(main):001:0> require 'linux_stat' => true irb(main):002:0> pid = LinuxStat::Process.names.find { |x| x[1].include? 'firefox' }[0] => 770 irb(main):003:0> LinuxStat::ProcessInfo.cpu_usage(pid: pid) => 0.0 irb(main):004:0> LinuxStat::ProcessInfo.cpu_usage(pid: pid) => 15.0To get the memory usage of Firefox (for example):
$ irb irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::ProcessInfo.mem_stat(LinuxStat::Process.names.find { |x| x[1].include? 'firefox'.freeze }[0]) => {:memory=>468472, :virtual_memory=>4754080, :resident_memory=>814388}To get ONLY the memory usage in MiB:
$ irb irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::ProcessInfo.memory(LinuxStat::Process.names.find { |x| x[1].include? 'firefox'.freeze }[0]).fdiv(1024).round(2).to_s << " MiB" => "467.51 MiB"LinuxStat::FS module gives you the raw info in Hash collected from statvfs.
LinuxStat::Filesystem.stat_raw(fs = '/')
does that automatically.
$ irb irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::FS.stat('/') => {:block_size=>4096, :fragment_size=>4096, :blocks=>29292283, :block_free=>9349843, :block_avail_unpriv=>9349843, :inodes=>58612160, :free_inodes=>56708247, :filesystem_id=>2050, :mount_flags=>1024, :max_filename_length=>255} irb(main):003:0> t = Time.now ; puts LinuxStat::FS.stat('/') ; Time.now - t {:block_size=>4096, :fragment_size=>4096, :blocks=>29292283, :block_free=>9349843, :block_avail_unpriv=>9349843, :inodes=>58612160, :free_inodes=>56708247, :filesystem_id=>2050, :mount_flags=>1024, :max_filename_length=>255} => 5.0468e-05To learn more about them, just run ri and the method name. To see all available methods.
irb irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::User.home_by_username('root') => "/root" irb(main):003:0> LinuxStat::User.home_by_username('ftp') => "/srv/ftp" irb(main):004:0> LinuxStat::User.home_by_username('mail') => "/var/spool/mail"
Or to get the UID/GID by username:irb irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::User.homes_by_uid(1001) => ["/home/userx", "/home/userz"] irb(main):003:0> LinuxStat::User.homes_by_uid(1000) => ["/home/sourav"] irb(main):004:0> LinuxStat::User.home_by_gid(1001) => "/home/userx" irb(main):005:0> LinuxStat::User.home_by_gid(1000) => "/home/sourav" irb(main):006:0> LinuxStat::User.home_by_gid(0) => "/root"
Or to get the current user (in docker for example):irb irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::User.uid_by_username('root') => 0 irb(main):003:0> LinuxStat::User.uid_by_username('ftp') => 14 irb(main):004:0> LinuxStat::User.gid_by_username('ftp') => 11 irb(main):005:0> LinuxStat::User.gid_by_username('InvalidUser') => nil
irb irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::User.get_current_user => "x" irb(main):003:0> LinuxStat::User.get_user => "x" irb(main):004:0> LinuxStat::User.get_login => ""
/usr/share/hwdata/
.
LS::USB.devices_stat
and LS::PCI.devices_stat
returns the information in a Hash:
But if the files are not available, it won't return hwdata related information.ruby -r linux_stat -e "puts LS::USB.devices_stat.to_s[0..200]" [{:path=>"/sys/bus/usb/devices/1-1.2/", :id=>"04d9:1203", :vendor_id=>"04d9", :product_id=>"1203", :bus_num=>1, :dev_num=>7, :hwdata=>{:vendor=>"Holtek Semiconductor, Inc.", :product=>"Keyboard"}, :aut
hwdata_file = file
.
LS::PCI.hwdata_file = File.join(__dir__, 'hwdata', 'pci.ids') LS::USB.hwdata_file = File.join(__dir__, 'hwdata', 'usb.ids')Assuming that you have `pci.ids` and `usb.ids` under ./hwdata directory.
irb(main):001:0' require 'linux_stat' => true irb(main):002:0> LS::USB.hwdata_file_set? => false irb(main):003:0> LS::USB.devices_stat ; '' => "" irb(main):004:0> LS::USB.hwdata_file_set? => trueIt works on USB and PCI modules.
irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LS::PCI.initialize_hwdata => true irb(main):003:0> LS::PCI.initialize_hwdata => falseIt will return true if it worked, else it will return false. It's intended to be done once.
To convert bytes to binary suffixes:irb irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::PrettifyBytes.convert_decimal(1000) => "1.00 kilobyte" irb(main):003:0> LinuxStat::PrettifyBytes.convert_decimal(10000) => "10.00 kilobytes" irb(main):004:0> LinuxStat::PrettifyBytes.convert_decimal(100000) => "100.00 kilobytes" irb(main):005:0> LinuxStat::PrettifyBytes.convert_decimal(10 ** 13) => "10.00 terabytes"
irb(main):006:0> LinuxStat::PrettifyBytes.convert_binary(1000) => "1000.00 bytes" irb(main):007:0> LinuxStat::PrettifyBytes.convert_binary(10000) => "9.77 kibibytes" irb(main):008:0> LinuxStat::PrettifyBytes.convert_binary(100000) => "97.66 kibibytes" irb(main):009:0> LinuxStat::PrettifyBytes.convert_binary(10 ** 13) => "9.09 tebibytes"To convert them to short Metric decimal suffixes:
irb(main):010:0> LinuxStat::PrettifyBytes.convert_short_decimal(1000) => "1.00 kB" irb(main):011:0> LinuxStat::PrettifyBytes.convert_short_decimal(10000) => "10.00 kB" irb(main):012:0> LinuxStat::PrettifyBytes.convert_short_decimal(100000) => "100.00 kB" irb(main):013:0> LinuxStat::PrettifyBytes.convert_short_decimal(10 ** 13) => "10.00 TB"To convert them to short IEC binary suffixes:
irb(main):014:0> LinuxStat::PrettifyBytes.convert_short_binary(1000) => "1000 B" irb(main):015:0> LinuxStat::PrettifyBytes.convert_short_binary(10000) => "9.77 KiB" irb(main):016:0> LinuxStat::PrettifyBytes.convert_short_binary(100000) => "97.66 KiB" irb(main):017:0> LinuxStat::PrettifyBytes.convert_short_binary(10 ** 13) => "9.09 TiB"It can support values upto hundreds of yottabytes and yobibytes, or yb and yib. You can also do stuff like:
irb irb(main):001:0> require 'linux_stat' => true irb(main):002:0> LinuxStat::PrettifyBytes.convert_short_decimal(LinuxStat::Mounts.device_stat('/dev/sdb1')[:total]) => "31.47 GB" irb(main):003:0> LinuxStat::PrettifyBytes.convert_short_binary(LinuxStat::Mounts.device_stat('/dev/sdb1')[:total]) => "29.31 GiB" irb(main):004:0> LinuxStat::PrettifyBytes.convert_short_binary(LinuxStat::Mounts.device_stat('/dev/sdb1')[:used]) => "26.80 GiB" irb(main):005:0> LinuxStat::PrettifyBytes.convert_short_binary(LinuxStat::Mounts.device_stat('/dev/sdb1')[:available]) => "2.51 GiB"
gem 'linux_stat'
to Gemfile:
You can use LinuxStat directly in rails:Gemfile bundle add linux_stat
bin/setup
to install dependencies. You can also run bin/console
for an interactive prompt that will allow you to experiment.
bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org
Like other gems, this doesn't have a test like RSpec. We suggest using the bin/linuxstat.rb file on various systems.
If you need to test a specific module, say the CPU, just run it like this:
Or:ruby bin/linuxstat.rb CPU
That is, the argument passed is not case-sensitive.ruby bin/linuxstat.rb cpu
This is not a valid module and can't be run. Bug reports and pull requests are welcome on GitHub at https://github.com/Souravgoswami/linux_stat The gem is available as open source under the terms of the MIT License Languages Used:ruby bin/linuxstat.rb upc