c ++ - Forslag til program/script til log-timer

Indlæg af Hanne Mølgaard Plasc

Problem



Dette er et lidt åbent spørgsmål, men jeg leder efter generel vejledning om, hvordan man nærmer sig dette problem, fordi jeg virkelig ikke ved, hvor jeg skal starte:


Med min nuværende arbejdsgiver skal jeg logge min arbejdstid hver uge. Så jeg er interesseret i at skrive et program (jeg er mest komfortabel med C ++) eller et script til at 'usynligt' fange hver gang jeg logger ind på min maskine og sætter den i seng. Kan samfundet anbefale tilgange til, hvordan man gør dette?


Jeg beskriver mit arbejdsmiljø lidt mere:


Jeg logger ind på en Windows-boks, som jeg hovedsagelig bruger til email og web browsing, men det meste af min udvikling er lavet af VNC 'ing til en Linux-boks. Så logger jeg ind i Linux-boksen næsten med det samme, efter at jeg logger ind på Windows. Linux-boksen er min egen, så jeg er fri til at skrive binære/script-dæmoner til at køre på den.


Min første tanke var at skrive et program, der på en eller anden måde 'fanget' Windows login og sleep events, ligesom du kan fælde til SIGINT osv. - men jeg ved ikke, om eller hvordan det er muligt.


Jeg er helt ny og naiv til Linux-miljøet, så jeg ved ikke, hvorfor det sker: men jeg bliver normalt ikke bedt om min adgangskode, når jeg genoptager min VNC-session (jeg ser normalt en fejl om et sammenbrud, der forekommer med x -screensaver). Jeg er sjældent bedt om mit kodeord, men jeg ved endnu ikke, hvad der skelner mellem, når jeg bliver spurgt, og når jeg ikke er det. Grunden til, at jeg nævner dette er, at hvis der er en sådan ting som 'fældefangst ved login', synes det at være umuligt at gøre i Linux-boksen på grund af denne inkonsekvente adgangskode.


Igen: mit mål er at have noget, der fanger mine login/logout/sleep aktiviteter uden jeg starter en kommando/script hver gang jeg logger ind/ud eller sætter mit system i dvale. Hvis det ikke er rimeligt at kode/scripte en dæmon, der gør dette, er der løsninger (og gratis), der kan gøre dette? Hvis ikke - det vil sige, hvis den eneste løsning er manuelt at køre noget hver gang jeg logger ind/ud eller sætte mit system i dvale - så vil jeg være i orden sammen med et program for at gøre det.


Tak for vejledninger og råd.

Bedste reference


Du kan se på 'sidste' kommandoen. I et andet stak overløbsspørgsmål blev dette nævnt som notering af login/logout gange. På min maskine gav denne kommando mig også værdier, der lignede en varighed (: Jeg tror). [3]


Hvis du vil undersøge mulighederne for at protokolle logins selv, kan du tilføje kommandoer i '.bashrc', så du kan køre brugerdefinerede kommandoer, når en shell åbnes. Denne tilgang løber dog kommandoerne for hver konsol, du åbner, ikke kun når du logger ind.


Jeg gætter på at kigge på kommandoen 'sidste' kan nemt give dig de ønskede resultater.

Andre referencer 1


Nå kan du altid tage følgende enkle løsning, hvis situationen er presserende og derefter flytte til en mere sofistikeret en senere ... Skriv et script i hvilket arbejdsmiljø du er i, hvilket måler tiden fra start til handling. Du kan trivielt få det til at stoppe, indtil du indtaster nogen indtastning, og opnå hvor lang tid det tog, før du gav denne indgang.


Output disse resultater i nogle tekstfil og indlæse dem i nogle kode for at analysere resultaterne i et præsentabelt format, ville være interessant at gøre i en DBMS. Indstil scripts i planlæggeren for at starte automatisk ...


Et problem jeg ser her er arbejdsmiljøet. Du siger, at Windows-maskinen er din egen, men vil du logge arbejdstimer på det? Hvis det er tilfældet bliver det lidt mere kompliceret at automatisere scriptet til at starte, når du læser arbejdsrelaterede e-mails ... Det ville være meget enklere at bare oprette scriptet på Linux-miljøet og måske tilføje en tilnærmelse af tiden brugt på Windows-maskine gør arbejdsrelaterede ting, men du giver ikke begrænsningerne på Linux-maskinen, som ikke er din. Måske kan du også skrive et script, der læser maskinen og indpakker læsningen i en funktionalitets målingstid, indtil du lukker maskinen. .. det bliver selvfølgelig irriterende, hvis du ofte afslutter maskinen.


Der er sikkert flere egnede måder til at automatisere denne proces helt, selvom ... afhænger af, hvad du vil have, og hvad du er begrænset til, så tag det som en peger.

Andre referencer 2


Jeg fandt en interessant løsning på dette: kommandoen Get-WinEvent i Windows PowerShell. F.eks.:


PS C:Windowssystem32> Get-WinEvent -FilterHashtable @{starttime='1/20/2017';endtime='1/21/2017';logname='security';id=4648,4634}

TimeCreated                             ProviderName                                                                 Id Message
-----------                             ------------                                                                 -- -------
1/20/2017 6:20:38 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 5:42:20 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 5:42:20 PM                    Microsoft-Windows-Security-Auditing                                        4648 A logon was attempted using explicit...
1/20/2017 5:42:20 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 5:42:20 PM                    Microsoft-Windows-Security-Auditing                                        4648 A logon was attempted using explicit...
1/20/2017 5:42:20 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 5:42:20 PM                    Microsoft-Windows-Security-Auditing                                        4648 A logon was attempted using explicit...
1/20/2017 5:42:19 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 5:42:18 PM                    Microsoft-Windows-Security-Auditing                                        4648 A logon was attempted using explicit...
1/20/2017 5:30:32 PM                    Microsoft-Windows-Security-Auditing                                        4648 A logon was attempted using explicit...
1/20/2017 5:30:29 PM                    Microsoft-Windows-Security-Auditing                                        4648 A logon was attempted using explicit...
1/20/2017 4:34:36 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 2:49:34 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 2:07:06 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 1:48:06 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 1:48:06 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 1:45:09 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 1:45:09 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 1:42:55 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 1:42:54 PM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 12:56:32 PM                   Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 12:16:58 PM                   Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 12:16:58 PM                   Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 12:16:58 PM                   Microsoft-Windows-Security-Auditing                                        4648 A logon was attempted using explicit...
1/20/2017 12:16:58 PM                   Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 12:16:58 PM                   Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 12:16:58 PM                   Microsoft-Windows-Security-Auditing                                        4648 A logon was attempted using explicit...
1/20/2017 11:23:29 AM                   Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 10:06:22 AM                   Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 9:48:06 AM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 9:48:06 AM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 9:45:19 AM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 9:45:09 AM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 9:43:47 AM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 9:43:47 AM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 9:43:47 AM                    Microsoft-Windows-Security-Auditing                                        4648 A logon was attempted using explicit...
1/20/2017 9:43:47 AM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 9:43:47 AM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 9:43:47 AM                    Microsoft-Windows-Security-Auditing                                        4648 A logon was attempted using explicit...
1/20/2017 9:43:25 AM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 9:42:57 AM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 9:42:56 AM                    Microsoft-Windows-Security-Auditing                                        4634 An account was logged off....
1/20/2017 9:42:52 AM                    Microsoft-Windows-Security-Auditing                                        4648 A logon was attempted using explicit...


Hvor 4648 repræsenterer en logonhændelse, og 4634 repræsenterer en logoff-begivenhed.


Herfra kan jeg forestille mig, at resten af ​​mit ønskede mål er at pakke dette op i en slags script, som beregner tiden mellem den første logon og den sidste logoff.


Jeg antager, at dette kunne være gået til SuperUser, men jeg vidste ikke oprindeligt, hvor spørgsmålet/svaret ville føre.