bất kỳ ai cũng có thể cho tôi biết cách tôi có thể tạo danh sách người dùng đã đăng nhập hôm qua hoặc trước đó nhưng chưa đăng xuất. mà không lặp lại cùng một người dùng trong danh sách.Trong UNIX, cách tìm người dùng đã đăng nhập hôm qua hoặc trước đó
10
A
Trả lời
12
0
Bạn có thể làm điều đó một cách có lập trình, ví dụ:
Trong Python:
from pyutmp import UtmpFile
import time
import datetime
for utmp in UtmpFile():
# utmp is a Utmp object
if utmp.ut_user_process:
duration=(time.time()-utmp.ut_time)
if duration > (24*60*60):
if not utmp.ut_user in users:
users.append(utmp.ut_user)
print '%s logged in at %s session duration: %d:%d:%d [%s] on tty %s from %s' % (utmp.ut_user, time.ctime(utmp.ut_time), (duration/3600), ((duration%3600)/60), (duration%60), datetime.timedelta(seconds=duration), utmp.ut_line, utmp.ut_host)
Trong Perl:
#! /usr/bin/perl -w
use lib './blib/lib', './blib/arch';
use Getopt::Std;
use User::Utmp qw(:constants);
use Socket;
use strict;
my @utmp;
my %ut_type = (BOOT_TIME() => "BOOT_TIME",
DEAD_PROCESS() => "DEAD_PROCESS",
EMPTY() => "EMPTY",
INIT_PROCESS() => "INIT_PROCESS",
LOGIN_PROCESS() => "LOGIN_PROCESS",
NEW_TIME() => "NEW_TIME",
OLD_TIME() => "OLD_TIME",
RUN_LVL() => "RUN_LVL",
USER_PROCESS() => "USER_PROCESS");
my ($user,$duration,$host,$hostAddr,$hostName,$start,$startX,$startXms,$line,$pid,%users);
if (User::Utmp::HAS_UTMPX()) {
@utmp = User::Utmp::getutx();
} else {
@utmp = User::Utmp::getut();
}
print "\nActive Users - loged in for more than a day\n";
foreach my $entry (@utmp)
{
unless ($entry->{"ut_type"} != USER_PROCESS || $users{$entry->{"ut_user"}}) {
$user = $entry->{"ut_user"};
$host = $entry->{"ut_host"};
$hostAddr = $entry->{"ut_addr"};
$start = $entry->{"ut_time"};
$startX = $entry->{"ut_tv"};
$startXms = $entry->{tv_usec};
$line = $entry->{"ut_line"};
$pid = $entry->{"ut_pid"};
$duration = time - $start;
next if ($duration < (24*60*60));
$users{$user} = $user;
if ($hostAddr) {
$hostName = gethostbyaddr($hostAddr, AF_INET) ;
$hostName .= " (" ;
$hostName .= join(".", unpack("C4", $hostAddr));
$hostName .= ")";
} else {
$hostName="";
}
printf "User: %s, has been logged in since: %s, duration %d:%d:%d [%d days %d hours %d mins %d secs], on %s (PID: %s), from %s [%s]\n", $user, scalar(localtime($start)), $duration/3600, ($duration%3600)/60, $duration%60, ($duration/(3600*24)), $duration/3600, ($duration%3600)/60, $duration%60, $line, $pid, $host, $hostName;
}
}
print "\n\n";
Các vấn đề liên quan
- 1. Theo dõi người dùng đã đăng nhập
- 2. Nhận id người dùng đã đăng nhập
- 3. Trang khác cho người dùng đã đăng nhập và người dùng chưa đăng nhập tại gốc
- 4. Cách đăng nhập bằng Tên người dùng hoặc id email
- 5. Danh sách người dùng đã đăng nhập trong Wordpress?
- 6. Moodle cách tìm hiểu vai trò của người dùng đã đăng nhập
- 7. MVC3 + Cách lấy tên người dùng hiện tại đã đăng nhập của người dùng
- 8. Nhận tên người dùng/mật khẩu của người dùng đã đăng nhập trong Windows
- 9. Lưu trữ chi tiết người dùng đã đăng nhập
- 10. Cách giữ người dùng SecureSocial đăng nhập?
- 11. Tải UPN hoặc email cho người dùng đã đăng nhập trong ứng dụng web .NET
- 12. Đăng nhập người dùng lập trình qua JAAS
- 13. Chuyển hướng sau khi người dùng đã đăng nhập
- 14. tên người dùng hoặc id email để đăng nhập?
- 15. Các trang web như cửa hàng Facebook đã đăng nhập người dùng trong cookie hoặc phiên?
- 16. Tìm hiểu người dùng hiện đang đăng nhập ở Django
- 17. Cách đăng xuất người dùng đã xác thực trong ServiceStack?
- 18. Kiểm tra thông tin đăng nhập từ xa và kiểm tra người dùng đã đăng nhập
- 19. ASP.NET | Xác thực biểu mẫu | TẤT CẢ người dùng đã đăng nhập (danh sách tất cả người dùng hoặc số)
- 20. Đăng nhập bằng tên người dùng hoặc email
- 21. backbone.js - xử lý nếu người dùng đăng nhập hoặc không
- 22. Android-GCM: Cách chăm sóc người dùng đã đăng xuất?
- 23. Cách nhận tên người dùng đã đăng nhập trong Access vba?
- 24. Cách xác minh người dùng đã đăng nhập bằng Javascript trong sharepoint
- 25. Nhận facebook Việc đăng nhập người dùng
- 26. Đã đăng ký tại/appname /: Người dùng đã đăng ký
- 27. Query hôm qua, tuần trước, tháng trước SQLite
- 28. Cách sử dụng các khung chơi Mô-đun an toàn để đăng nhập người dùng sau khi người dùng đó đã được tạo
- 29. Lấy tên người dùng đã đăng nhập trong ứng dụng mạng nội bộ ASP.NET MVC3
- 30. Xác thực người dùng nhập hoặc
này cần được hỏi về "lỗi máy chủ" hay "Super User" ... không thực sự là một câu hỏi lập trình –
không đây là unix lập trình lệnh shell. –