who
Get information about users who are currently logged in with ruby.
linux manual
Basic Usage
require 'kanrisuru'
host = Kanrisuru::Remote::Host.new(host: '127.0.1.1', username: 'ubuntu', keys: ['~/.ssh/id_rsa'])
result = host.who
result.success?
true
result[0].user
'ubuntu'
result[0].ip.to_s
'172.16.30.1'
Parameters
| Field |
Type |
Description |
| username |
string
|
Name of user to get login information about. |
Result
Returns an array of UserLoggedIn struct.
UserLoggedIn Fields
| Field |
Type |
Description |
| user |
string
|
The name of the currently logged in user. |
| tty |
string
|
The name of the terminal the user is logging in from. |
| ip |
IPAddr
|
The IP address of the terminal or host the user is logging in from. |
| login |
string
|
The time the user logged in, in a 24-hour format. |
| idle |
string
|
The time since the user last used the terminal; displays ?xdm? if the user is currently active. |
| jcpu |
string
|
The total run time of all system processes attached to the user's terminal. |
| pcpu |
string
|
Elapsed time for the user's current process. |
| command |
string
|
The name of the user's current process. |
Return Example
host.who
[
[0] #<Struct:Kanrisuru::Core::System::UserLoggedIn:0x00000730
command = "irb",
idle = "3.00s",
ip = #<IPAddr: IPv4:172.16.30.1/255.255.255.255>,
jcpu = 1.73,
login = "19:17",
pcpu = 1.47,
tty = "pts/0",
user = "ubuntu"
>
]
Exit Status
| Code |
Description |
| 0 |
Success |
| 1 |
Failure |
Tested On
- Ubuntu, Debian, Centos, Fedora, Redhat, OpenSuse, SLES