Làm cách nào để đọc cột của ID IDLE trong đầu ra của lệnh 'w' của Linux?


11

Tôi đang cố gắng tìm ra một quy trình giám sát các phiên của người dùng trên một máy chủ từ xa và thông báo cho họ khi họ không sử dụng quá lâu, với lệnh Linux wlà phù hợp.

Vấn đề là - wsử dụng 3 định dạng khác nhau để chỉ định thời gian nhàn rỗi của phiên và tôi không thể tìm ra chúng đúng cách. Một đầu ra wcó thể trông như thế này:

 11:40:57 up 400 days, 10:46, 13 users,  load average: 5.07, 5.10, 4.83
USER     TTY      FROM           LOGIN@   IDLE   JCPU   PCPU WHAT
john     pts/1    XX.XX.XX.XX   Wed13   22:29m  0.13s  0.04s ssh master-db
june     pts/2    XX.XX.XX.XX   Wed13   46.00s  0.67s  0.13s -bash
jenn     pts/4    XX.XX.XX.XX   11:13   27:47   4.16s  0.11s -bash

Như bạn có thể thấy, IDLE có các định dạng khác nhau cho mỗi người dùng:

  • "AA.BBs" rõ ràng có nghĩa là giây AA và BB 1/100 giây (46 giây trong trường hợp tháng 6) đã trôi qua kể từ khi cô hoạt động lần cuối trên bảng điều khiển.
  • "AA: BBm" có lẽ có nghĩa là giờ AA và phút BB đã trôi qua kể từ khi John hoạt động lần cuối trong phiên của mình.
  • "AA: BB" là định dạng tôi không thể tìm ra - Jennifer đã không hoạt động trong bao lâu?

Câu trả lời:


4

Không có vòng loại, nó có nghĩa là MM: SS - tức là phút và toàn bộ giây. Là một phần thưởng bổ sung, có một định dạng thứ tư mà bạn không có trong đầu ra đó - một số ngày (NNday) không hoạt động.


10

Từ trang người đàn ông

Định dạng chuẩn là DDday, HH: MMm, MM: SS hoặc SS.CC nếu thời gian lớn hơn 2 ngày, 1 giờ hoặc 1 phút tương ứng.

vì vậy đầu ra của bạn là MM: SS (> 1m và <1 giờ).


1

Không hoàn toàn là câu trả lời cho câu hỏi của bạn, nhưng cách tiếp cận dễ dàng hơn để kiểm tra thời gian nhàn rỗi của các phiên đăng nhập sẽ là xem / dev / pts. Thời gian sửa đổi của các tệp trong đó phản ánh lần cuối cùng phiên đăng nhập nhận được đầu vào.

Bạn sẽ có thể thực hiện các thao tác thống kê ở đó (ví dụ: stat --format = "% n% X" *) và giữ mọi thứ trong vài giây. Nên làm cho bất kỳ thời gian tính toán dễ dàng hơn.


1
Nếu bạn thấy mình phân tích các định dạng thời gian, bạn có thể muốn tìm một nguồn của dấu thời gian đó trong thời gian kỷ nguyên.
cjc

1
Tôi đã đọc một cái gì đó về điều đó, nhưng tôi nhận thấy rằng thời gian nhàn rỗi được báo cáo wlà khác nhau sau đó là dấu thời gian trên các /dev/ptstệp. bất cứ ý tưởng tại sao?
Guss

Trong bối cảnh nào thì khác? Tôi đã không xem xét điều này một cách cẩn thận, nhưng "w" phải lấy thông tin từ một nơi nào đó và / dev / pts là một nơi rõ ràng. À, có lẽ nếu có gì đó xảy ra trên màn hình (/ dev / pts / * nên là liên lạc 2 chiều); trong trường hợp đó, người dùng sẽ không sử dụng, nhưng vì có gì đó xảy ra trên thiết bị, ví dụ / dev / pts / 0 sẽ được cập nhật.
cjc

Đó là một lời giải thích có khả năng và nó sẽ đánh bại sơ đồ của tôi - bởi vì tôi muốn tắt các phiên nhàn rỗi ngay cả khi người dùng đang theo dõi một số tệp nhật ký hoạt động hoặc sử dụng watch.
Guss

1

Câu trả lời là 27 phút và 47 giây

  1. định dạng mặc định là MM: SS.
  2. 22: 29m có nghĩa là 22 giờ và 29 phút
  3. 46,00 có nghĩa là 46 giây
  4. 4d có nghĩa là 4 ngày
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.