Untuk membaca versi html eyecandy, kunjungi linux_stat.
LinuxStat memungkinkan Anda membaca status sistem Linux. Ini dapat menunjukkan kepada Anda statistik dan penggunaan CPU, statistik dan penggunaan memori, statistik dan penggunaan swap, penggunaan baterai, info BIOS, detail kernel, IP lokal, detail OS dan parse OS-rilis + LSB-rilis, dll.
Ini hanya berfungsi di Linux, dan mendeteksi OS adalah hingga pengguna permata ini.
| Daftar isi |
|---|
| Ketergantungan runtime |
| Membangun dependensi |
| Dependensi runtime opsional |
| Instalasi |
| Penggunaan |
| Catatan |
| Jenis pengembalian |
| Ruby on Rails |
| Android |
| Mengkloning repo ini |
| Perkembangan |
| Pengujian |
| Berkontribusi |
| Lisensi |
| Bahasa |
# pacman -S gcc make ruby
# apt install gcc build-essential ruby ruby-dev build-essential
# emerge --ask dev-lang/ruby
# yum install gcc ruby-devel ruby make
Anda dapat menjalankan linux_stat di *amazonlinux dan *centos jika Anda memiliki Ruby 2.3.0+.
# zypper install gcc ruby ruby-devel make
Anda memerlukan hwdata untuk mendekode vendor dan id produk jika Anda menggunakan linuxstat :: usb dan/atau linuxstat :: pci
Anda dapat menginstal hwdata secara sederhana.
# pacman -S hwids
# apt install hwdata
# emerge --ask sys-apps/hwids
# yum install hwdata
zypper install hwdata
Tapi tanpa hwdata, itu tidak akan menunjukkan informasi seperti itu.
Anda juga dapat menunjuk ke salinan file HWData (PCI.IDS / USB.IDS) yang diunduh.
Ikuti catatan 7 di bawah ini untuk informasi lebih lanjut tentang itu.
Tambahkan baris ini ke gemfile aplikasi Anda:
gem 'linux_stat'Dan kemudian mengeksekusi:
$ bundle install
Atau instal sendiri sebagai:
$ gem install linux_stat
Berikut ini adalah modul LinuxStat dan fungsi modul dalam tabel. Usages.md dihasilkan oleh perintah linuxstat.rb -md , yang tersedia setelah instalasi.
Untuk kemudahan penggunaan, Linuxstat juga ditugaskan ke konstanta LS. Jadi Linuxstat :: USB dapat diganti dengan LS :: USB misalnya.
| Modul LinuxStat | Keterangan |
|---|---|
| Linuxstat :: BIOS | Informasi Terkait BIOS Sistem |
| Linuxstat :: Baterai | Informasi realted baterai pertama sistem |
| Linuxstat :: CPU | Penggunaan CPU Sistem dan informasi terkait lainnya |
| Linuxstat :: FS | Informasi terkait sistem file sistem. Ini digunakan oleh modul sistem file. |
| LinuxStat :: Filesystem | Penggunaan sistem file sistem dan informasi terkait lainnya |
| Linuxstat :: ftw | File Tree Walk: berjalan melalui file dan memberi Anda data yang terkait dengan file dan direktori sendiri dan sub |
| Linuxstat :: Kernel | Informasi terkait kernel sistem |
| Linuxstat :: Memori | Penggunaan memori (RAM) sistem dan informasi terkait lainnya |
| Linuxstat :: Mounts | Informasi terkait titik pemasangan sistem |
| Linuxstat :: Net | Penggunaan internet sistem dan informasi lainnya |
| Linuxstat :: OS | Informasi terkait OS sistem dan file rilis parse |
| Linuxstat :: PCI | Informasi terkait perangkat PCI sistem (penguraian opsional HWDATA) |
| Linuxstat :: PrettifyBytes | Konversi byte menjadi format manusia yang dapat dibaca (KB, Kib, dll.) |
| Linuxstat :: Procfs | Baca sistem file proc di C untuk akses yang lebih cepat. Menggunakan accross |
| Linuxstat :: Proses | Proses sistem dan informasi terkait |
| Linuxstat :: ProcessInfo | CPU proses tunggal sistem, penggunaan memori, waktu CPU, dll. Info |
| Linuxstat :: Swap | Informasi Terkait Pertukaran Sistem |
| Linuxstat :: Sysconf | Digunakan oleh modul LinuxStat lainnya, menyediakan berbagai detail sistem seperti halaman, anak -anak maks, file terbuka, dll |
| Linuxstat :: Sysinfo | Digunakan oleh modul LinuxStat lainnya, akses yang lebih cepat ke informasi seperti TotalRam, Freeram, TotalHigh, Load Average, dll. |
| Linuxstat :: Thermal | Status termal sistem, info terkait kipas, jumlah sensor, jumlah kipas, dll. |
| Linuxstat :: USB | Informasi terkait perangkat USB sistem dan jumlah lainnya (penguraian opsional HWDATA) |
| Linuxstat :: Uname | Digunakan oleh modul LinuxStat lainnya, informasi uname sistem di C, yang juga disediakan oleh perintah uname . |
| Linuxstat :: Pengguna | Berbagai informasi terkait pengguna, memberikan nama pengguna saat ini, direktori home, dll. |
Untuk menghitung penggunaan saat ini, kita perlu mendapatkan dua penggunaan pada interval tertentu, dan mengurangi yang ke -2 dari tanggal 1. Misalnya, jika unduhan saat ini ( LinuxStat::Net.total_bytes_received ) adalah 1000 byte, dan jika 0,1 detik yang lalu, itu 100 byte, itu berarti 900 byte diterima dalam 0,1 detik. Itu berarti kecepatan saat ini adalah 9000 byte/s atau 9 kb/s.
Tanpa pemungutan suara, tidak mungkin untuk menghitung penggunaan saat ini. Meskipun total penggunaan dapat dihitung. Monitor sistem juga melakukan itu ...
Dengan demikian metode ini membutuhkan interval pemungutan suara:
Mereka tidur untuk interval yang diberikan dan kemudian membedakan antara data.
Untuk info lebih lanjut, lihat dokumentasi RI untuk metode di atas.
Metode ini dapat sedikit memperlambat aplikasi Anda kecuali Anda menerapkannya di utas.
Metode lain tidak memiliki tidur diterapkan, dan mereka hanya bekerja di bawah milidetik.
Misalnya:
LinuxStat::CPU.stat(0.1)
=> {0=>7.69, 1=>0.0, 2=>0.0, 3=>18.18, 4=>10.0}
Ini akan tidur selama 0,1 detik. Agar dapat diandalkan, gunakan waktu seperti 0,05 detik atau lebih.
Jika Anda ingin membangun monitor sistem dan tidak ingin menunggu, Anda harus melakukan sesuatu seperti ini:
#!/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[2Je[He[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}"
end
Ini tidak akan menunggu di setiap loop selama 0,5 detik, tetapi juga tidak akan memperbarui penggunaan CPU di setiap loop. Jadi apa yang akan Anda lihat dalam penggunaan CPU dalam setiap interval 0,5 detik.
Anda juga akan melihat counter meningkat seperti orang gila. Yang berarti tidak menunggu selama 0,5 detik.
Tetapi metode lain tidak memiliki penundaan ini, jadi dalam contoh ini, Anda akan dapat melihat "unduhan total" dan "unggah total" secara real time, dan segera setelah kernel Linux memperbarui data dan Ruby menjalankan loop.
Cukup jalankan perintah linuxstat.rb untuk menguji metode apa yang membutuhkan waktu yang diukur dalam mikrodetik.
Ada 6 metode yang berbeda untuk menghitung jumlah CPU. Tapi mereka ada di sini karena suatu alasan!
Nah bagian ini sebenarnya menghilangkan metode.
LinuxStat::CPU.count() : Ini mendapatkan CPU yang dikonfigurasi untuk sistem. Itu tidak dihitung untuk CPU hotplugged. Jika 3 dari 4 CPU hotplugged, itu masih akan menunjukkan 4. Ini memanggil sysconf(_SC_NPROCESSORS_CONF)
LinuxStat::ProcessInfo.nproc(pid = $$) : [Juga alias ke LinuxStat::ProcessInfo.count_cpu() ]
Ini mengembalikan jumlah prosesor, seperti 3 metode lainnya. Tanpa argumen, itu seperti menjalankan require 'etc' ; puts Etc.nprocessors
Jadi ada peringatan memeriksa berapa jumlah prosesor yang sebenarnya dialokasikan untuk PID.
Misalnya:
$ ruby -r linux_stat -e "puts LS::ProcessInfo.nproc"
4
$ taskset -c 0 ruby -r linux_stat -e "puts LS::ProcessInfo.nproc"
1
$ taskset -c 0-1 ruby -r linux_stat -e "puts LS::ProcessInfo.nproc"
2
$ taskset -c 0-1,3 ruby -r linux_stat -e "puts LS::ProcessInfo.nproc"
3
$ taskset -c 0-1,3 ruby -r linux_stat -e "puts LS::ProcessInfo.nproc "
3
Atau dengan argumen:
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
=> 4
LinuxStat::CPU.online() :Ini mengembalikan jumlah CPU online sebagai array. Itu tidak terpengaruh oleh tugas atau apapun.
Misalnya:
irb(main):001:0> require 'linux_stat'
=> true
irb(main):002:0> LinuxStat::CPU.online
=> [0, 1, 3]
Dengan menggunakan LinuxStat::CPU.online.count Anda menghitung CPU online yang sebenarnya pada sistem Anda.
Setiap N jumlah CPU bisa mendapatkan hotplugged masuk dan keluar, dan ini akan melaporkannya dengan benar.
Itu hanya mendapatkan info dari /proc /stat; Tetapi jika gagal, ia akan membaca/sys/perangkat/sistem/CPU/online dan menguraikan output untuk mendapatkan array.
LinuxStat::CPU.count_online Ini adalah metode yang lebih kuat yang menghitung CPU online. Seharusnya tidak gagal jika tidak semua kasus! Tetapi jika gagal karena beberapa alasan yang sangat menyeramkan, itu akan mengembalikan nol.
LinuxStat::CPU.offline() :
Ini mengembalikan jumlah CPU offline sebagai array. Itu tidak terpengaruh oleh tugas atau apapun.
Misalnya:
irb(main):001:0> require 'linux_stat'
=> true
irb(main):002:0> LinuxStat::CPU.offline
=> [2]
Setiap N jumlah CPU bisa mendapatkan hotplugged masuk dan keluar, dan ini akan melaporkannya dengan benar.
Itu hanya mendapatkan info dari/sys/perangkat/sistem/cpu/offline, dan parsing output.
LinuxStat::Sysconf.processor_configured() : Kedengarannya berulang! Sebenarnya ya, ini ditulis dalam C, dan disebut oleh LinuxStat::CPU.count .
Perbedaannya adalah bahwa LinuxStat::CPU.count menyimpan nilai pengembalian, dan metode ini tidak.
LinuxStat::Sysconf.processor_online() :Ini mungkin lagi terdengar repititif ke linuxstat :: cpu.online, tapi sebenarnya tidak!
Jika Anda menggunakan saat loop, itu mungkin tidak melaporkan jumlah CPU yang benar setiap kali.
Terburuk, butuh waktu lama untuk memperbarui jumlah total CPU.
Manfaatnya adalah, cukup cepat!
Sebagian besar di sini hanya demi kelengkapan terhadap sysconf.
Sistem file dapat mengambil argumen. Secara default itu '/' atau akar sistem ...
Tetapi demi contoh, untuk mendapatkan ruang disk gratis /, Anda lakukan:
$ 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"
Untuk melihat ruang bebas dan total thumbdrive:
$ irb
irb(main):001:0> require 'linux_stat'
=> true
irb(main):002:0> LinuxStat::Mounts.mount_point('/dev/sdb1')
=> "/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"
Semua metode LinuxStat :: ProcessInfo dapat mengambil argumen yang berisi ID proses suatu proses. Secara default itu $$ atau PID dari proses saat ini, Ruby, itu sendiri.
Contoh: Katakanlah Anda ingin melihat berapa banyak CPU Firefox yang dikonsumsi, untuk itu Anda harus melakukan hal berikut (Firefox dapat membuat banyak proses anak):
LinuxStat::Process.names.find { |x| x[1].include? 'firefox' }[0]
=> 770 # but this differs all the time
$ 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.0
Untuk mendapatkan penggunaan memori Firefox (misalnya):
$ 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}
Untuk hanya mendapatkan penggunaan memori di 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"
Modul Linuxstat :: FS memberi Anda info mentah dalam hash yang dikumpulkan dari STATVFS.
Ini tidak didokumentasikan di atas karena tidak disarankan untuk menjalankan ini secara langsung. Tapi itu seharusnya tidak menyebabkan masalah apa pun. LinuxStat::Filesystem.stat_raw(fs = '/') melakukan itu secara otomatis.
Itu selalu membutuhkan argumen, dan sangat cepat. Secara langsung memanggil API C tanpa kode ruby menengah.
Misalnya, untuk mendapatkan info tentang '/' atau root:
$ 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-05
Untuk mempelajari lebih lanjut tentang mereka, jalankan saja RI dan nama metode. Untuk melihat semua metode yang tersedia.
Sebagian besar linuxstat :: pengguna mendukung argumen.
Misalnya, untuk mendapatkan rumah pengguna dengan nama pengguna:
$ 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"
Atau untuk mendapatkan rumah pengguna dengan gid/uid:
$ 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"
Atau untuk mendapatkan UID/GID dengan nama pengguna:
$ 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
Atau untuk mendapatkan pengguna saat ini (di Docker misalnya):
$ 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
=> ""
Benar, get_login () dapat mengembalikan string kosong. Tapi linuxstat :: user.get_user juga alias sebagai linuxstat :: user.get_current_user seharusnya tidak mengembalikan string kosong dalam sebagian besar keadaan.
Modul PCI dan USB sebenarnya bergantung pada hwdata yang ditemukan di/usr/share/hwdata/. Ls :: usb.devices_stat dan ls :: pci.devices_stat mengembalikan informasi dalam hash:
$ 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
Tetapi jika file tidak tersedia, itu tidak akan mengembalikan informasi terkait HWDATA.
Jadi disarankan untuk menginstal hwdata. Tetapi Anda mungkin menghadapi masalah dengan Heroku dan PaaS online lainnya di mana Anda tidak dapat menginstalnya. Jadi versi 1.1.1+ dilengkapi dengan fungsi modul yang disebut hwdata_file = file .
LS::PCI.hwdata_file = File.join(__dir__, 'hwdata', 'pci.ids')
LS::USB.hwdata_file = File.join(__dir__, 'hwdata', 'usb.ids')
Dengan asumsi bahwa Anda memiliki pci.ids dan usb.ids di bawah ./hwdata Directory.
Pada rel, Anda dapat meletakkan ini (ganti __dir__ dengan Rails.root ) di dalam lingkungan.rb.
Tetapi perhatikan bahwa file hanya dapat diatur sekali. Disarankan untuk melakukannya di awal aplikasi Anda.
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?
=> true
Ini berfungsi pada modul USB dan PCI.
Setelah file diatur, memanggil LS::PCI.hwdata_file = file sia -sia.
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
=> false
Ini akan mengembalikan true jika berhasil, kalau tidak itu akan mengembalikan false. Itu dimaksudkan untuk dilakukan sekali.
Jika Anda tidak menginisialisasi dan menelepon metode yang memanfaatkan HWDATA, mereka akan menyebutnya dan panggilan pertama mungkin memakan waktu 0,1 hingga 0,2 detik, panggilan berturut -turut kemudian akan mengambil di bawah milidetik.
Sering kali kita perlu bekerja dengan KB, MB GB, TB, atau Kib, Mib, Gib, Tib, dll. Dan kita perlu beberapa pekerjaan untuk mengonversi byte ke unit -unit itu. Karena Linuxstat menyediakan banyak data dalam byte, dan kilobytes, cukup membosankan untuk mengubahnya sepanjang waktu. Untuk menghindari duplikasi seperti itu, ia dilengkapi dengan modul PrettifyBytes.
Misalnya, untuk mengubah byte menjadi sufiks desimal:
$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"
Untuk mengubah byte menjadi sufiks biner:
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"
Untuk mengubahnya menjadi sufiks desimal metrik pendek:
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"
Untuk mengubahnya menjadi sufiks biner IEC pendek:
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"
Ini dapat mendukung nilai hingga ratusan yottabytes dan yobibytes, atau yb dan yib. Anda juga dapat melakukan hal -hal seperti:
$ 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"
Baca dokumentasi RI untuk info lebih lanjut.
Secara umum, jika suatu metode mengembalikan float atau integer atau waktu, itu akan mengembalikan float atau integer atau waktu dalam semua kasus. Tetapi jika statusnya tidak tersedia, itu akan mengembalikan nol.
Jika metode ini mengembalikan hash / array, ia akan mengembalikan hash / array dalam semua kasus. Jika status tidak tersedia, itu akan mengembalikan hash / array kosong.
Jika metode mengembalikan string, itu akan mengembalikan string pengembalian dalam semua kasus. Jika status tidak tersedia, itu akan mengembalikan string beku kosong.
Itu tidak memiliki implementasi kesalahan apa pun yang dinaikkan dalam runtime untuk kemudahan penggunaan.
Jika Anda perlu memeriksa beberapa stat yang mengembalikan bilangan bulat atau mengapung, dan Anda mendapatkan nihil, Anda tahu itu tidak tersedia, sehingga Anda dapat bekerja sesuai. Tetapi jika Anda membutuhkan nilai bilangan bulat atau float dalam 0 untuk format apa pun, Anda dapat menggunakan metode .to_i atau .to_f pada objek, nil akan dikonversi ke nomor kemudian.
Jika beberapa kesalahan dinaikkan , itu harus dilaporkan sebagai bug.
gem linux_stat : $ bundle add linux_stat
Anda dapat menggunakan LinuxStat secara langsung di rel.
Linuxstat mendukung Android OS. Tapi itu tidak diuji secara ketat di semua perangkat seperti aplikasi Android.
Tetapi di Termux Anda bisa menjalankan LinuxStat tanpa menghadapi masalah. Perhatikan bahwa jumlah CPU dapat berbeda karena fitur hotplugging. Jadi, jika Anda melihat jumlah CPU berubah, tidak ada yang bisa dilakukan tentang itu.
Masalah tentang menjalankan LinuxStat di Termux juga disambut.
Pengguna permata ini diminta untuk mengikuti langkah instalasi di atas untuk menginstal permata ini.
Repo ini hanya untuk tujuan pembangunan. Ini memiliki ekstensi C yang dapat melakukan yang terburuk untuk aplikasi stabil Anda. Kloning, menyusun kode dari repo ini untuk aplikasi produksi dapat menyerang kesalahan dan menghancurkan seluruh aplikasi secara langsung.
Permata di rubygem dilepaskan setelah berbagai tes.
Jadi instal saja permata, jangan mengkloning repo ini hanya karena versi ditabrak di sini dengan fitur -fitur baru, dan permata tidak keluar di rubygems.org.
Setelah memeriksa repo, kompilasi dan pasang permata ini ke mesin lokal Anda dengan bundle exec rake install
Anda juga dapat menjalankan bin/console untuk prompt interaktif yang akan memungkinkan Anda untuk bereksperimen.
Untuk menguji semua modul, jalankan rake install dan kemudian exe/linuxstat.rb . Periksa juga "pengujian" di bawah ini.
Seperti permata lainnya, ini tidak memiliki tes seperti RSPEC.
Kami menyarankan menggunakan file exe/linuxstat.rb pada berbagai sistem Linux untuk diuji.
Pertama, Anda perlu mengeksekusi bundle exec rake install untuk mengkompilasi dan menginstal permata ini.
Jika Anda perlu menguji modul tertentu, katakanlah CPU, jalankan saja seperti ini:
$ ruby exe/linuxstat.rb CPU
Atau:
$ ruby exe/linuxstat.rb cpu
Artinya, argumen yang disahkan tidak sensitif terhadap kasus. Tetapi jika argumen yang disahkan tidak tersedia dan langsung salah, itu akan menjalankan semua metode modul. Misalnya, Anda tidak dapat melakukannya:
$ ruby exe/linuxstat.rb upc
Ini bukan modul yang valid dan tidak dapat dijalankan.
Laporan bug dan permintaan tarik dipersilakan di GitHub di https://github.com/souravgoswami/linux_stat.
Permata tersedia sebagai open source di bawah ketentuan lisensi MIT.