큰 프로젝트 액세스 로그를 처리하고 모든 사용자에 대한 마지막 로그인 시도 목록을 가져올 프로젝트가 있습니다. 로그를 처리하는 동안 다음과 같은 점을 알게되었습니다.파이썬 : 파일에 대한 최신 로그인 만 저장
[user1, <last login recorded>, <current login>]
[user2, <no last login recorded>, <current login>]
[user1, <last login recorded>, <current login>]
[user3, <last login recorded>, <current login>]
동일한 사용자가 여러 로그인을 기록합니다. 마지막 목록에 대한 최신 로그인 정보 만 얻으려고합니다.
현재 날짜와 마지막 시간을 비교하는 것이 쉽지만 내 질문은 : 어떻게 현재의 최신 로그인을 임시 저장하고 다음과 비교할 수 있습니까? 나는 final_list []에 각각 로그인을 추가하고있어 경우
단순화 된 코드는 사용자가 이미 있는지 확인하고, 현재 로그인을 비교하는 방법이 그래서이
final_list = []
for login in log_file:
login = login.split(';')
last_login = get_last_login() #ldap search for the user last login
if last_login:
final_list.append([login[0], last_login, login[1]])
else:
final_list.append([login[0], 'no_last_login_recorded', login[1]])
처럼 보인다 하나는 목록에 있습니까?
일부 주제는 아니지만 모든 사용자의 마지막 로그인 시간을 인쇄하는 대부분의 Linux 배포판에서'lastlog'라는 명령을 사용합니다. –
@FlorinStingaciu 알아두면 좋지만, 여기 LDAP 액세스 파일로 작업하고 있습니다. 어쨌든 고마워. – sergei
사용자가 입력 한 사전을 사용하십시오. 마지막 쓰기 승리가 있습니다. – gkusner