SQLite рд▓рд╛рдИ рдмреНрдпрд╛рдХрдПрдиреНрдбрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдирдпрд╛рдБ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрд╕рдБрдЧ рд▓рд┐рдЧреЗрд╕реА рдмрд╛рдЗрдирд░реА рдкреНрд░рдгрд╛рд▓реА рд▓рдЧ рдврд╛рдБрдЪрд╛рд╣рд░реВ lastlog, btmp, utmp, рд░ wtmp рд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ (RFC) linux-api рдореЗрд▓рд┐рдЩ рд╕реВрдЪреАрдорд╛ рдЫрд▓рдлрд▓рдХреЛ рд▓рд╛рдЧрд┐ рдкреЛрд╕реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫред рдпреЛ рдкрд╣рд▓рд▓реЗ рейреи-рдмрд┐рдЯ рд╕рдордп рдХрд╛рдЙрдиреНрдЯрд░рд╣рд░реВрдХреЛ реирежрейрео рдУрднрд░рдлреНрд▓реЛ, рдПрдХреНрд╕рдЯреЗрдиреНрд╕рд┐рдмрд┐рд▓рд┐рдЯреАрдХреЛ рдЕрднрд╛рд╡, рдЦрд░рд╛рдм рдХреНрд╡реЗрд░реА рдкреНрд░рджрд░реНрд╢рди, рд░ рд▓реЗрдЦреНрджрд╛ рдкрд░рдорд╛рдгреБрддрд╛рдХреЛ рдЕрднрд╛рд╡ рд╕рд╣рд┐рдд рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдореНрдмреЛрдзрди рдЧрд░реНрдиреЗ рд▓рдХреНрд╖реНрдп рд░рд╛рдЦреЗрдХреЛ рдЫред
рд╣рд╛рд▓, рд▓рд┐рдирдХреНрд╕рдорд╛ рд╕рддреНрд░ рд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдпрд╛рд╕ рдбреЗрдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдирд┐рдореНрди рд╕реНрдерд┐рд░-рд╕рдВрд░рдЪрдирд╛ рдмрд╛рдЗрдирд░реАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ:
- /var/log/lastlog тАФ рдЕрдиреНрддрд┐рдо рд▓рдЧрдЗрдирдХреЛ рд╕рдордп (рейреи-рдмрд┐рдЯ time_t рдкреНрд░рдХрд╛рд░рдХреЛ рдлрд┐рд▓реНрдб "ll_time" рд╕рд╣рд┐рддрдХреЛ рд╕рдВрд░рдЪрдирд╛ "struct lastlog");
- /var/log/btmp тАФ рдЕрд╕рдлрд▓ рд▓рдЧрдЗрди рдкреНрд░рдпрд╛рд╕рд╣рд░реВ;
- /var/run/utmp тАФ рд╣рд╛рд▓рдХреЛ рд╕рддреНрд░рд╣рд░реВ;
- /var/log/wtmp тАФ рд▓рдЧрдЗрди рд░ рд▓рдЧрдЖрдЙрдЯрдХреЛ рдЗрддрд┐рд╣рд╛рд╕ред
рдпреА рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рдврд╛рдБрдЪрд╛ рдзреЗрд░реИ рджрд╢рдХ рдЕрдШрд┐ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рд░ рдпрд╕рдорд╛ рдзреЗрд░реИ рдЖрдзрд╛рд░рднреВрдд рд╕реАрдорд┐рддрддрд╛рд╣рд░реВ рдЫрдиреН:
- "utmpx" рд╕рдВрд░рдЪрдирд╛рдорд╛ рд░рд╣реЗрдХреЛ "tv_sec" рдлрд┐рд▓реНрдб рд░ "lastlog" рдорд╛ рд░рд╣реЗрдХреЛ "ll_time" рдлрд┐рд▓реНрдб "int32_t" рдкреНрд░рдХрд╛рд░рдХрд╛ рдЫрдиреН, рдЬрд╕рдХреЛ рдЖрдзрд╛рд░рдорд╛ рд╕рдордп рдХрд╛рдЙрдиреНрдЯрд░ рдорд╛рди рдЬрдирд╡рд░реА резреп, реирежрейрео рдорд╛ рдУрднрд░рдлреНрд▓реЛ рд╣реБрдиреЗрдЫред ABI рдЕрдиреБрдХреВрд▓рддрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛, ремрек-рдмрд┐рдЯ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдкрдирд┐, рдпреА рдлрд┐рд▓реНрдбрд╣рд░реВ рейреи-рдмрд┐рдЯ рдиреИ рд░рд╣рдиреНрдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рд╕рдорд╕реНрдпрд╛рд▓реЗ рд╕рдмреИ Linux рд╕реНрдерд╛рдкрдирд╛рд╣рд░реВрд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдиреЗрдЫред
- рдирд┐рд╢реНрдЪрд┐рдд рд░реЗрдХрд░реНрдб рд╕рд╛рдЗрдЬрд▓реЗ рдврд╛рдБрдЪрд╛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реА рд░ рд╕рдмреИ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рдкреБрди: рдХрдореНрдкрд╛рдЗрд▓ рдирдЧрд░реА рдирдпрд╛рдБ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ (рдЬрд╕реНрддреИ рдХрдиреНрдЯреЗрдирд░ ID, рд╕реЗрд╡рд╛ рдирд╛рдо, IP рдареЗрдЧрд╛рдирд╛) рдердкреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИрдиред
- last, lastb, who, рд░ lastlog рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрд▓рд╛рдИ рдлрд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рд▓рд╛рдЗрдирд░рд▓реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдЧрд░реНрди рдмрд╛рдзреНрдп рдкрд╛рд░рд┐рдиреНрдЫред рдареВрд▓рд╛ рд▓рдЧрд╣рд░реВрд╕рдБрдЧ, рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рд░реЗрдХрд░реНрдбрд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдмрд┐рдирд╛, I/O рд▓реЛрдб рд░ рдХреНрд╡реЗрд░реА рд╡рд┐рд▓рдореНрдмрддрд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реБрдиреНрдЫред
- рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓рдорд╛ рд▓реЗрдЦреНрдиреБ рдкрд░рдорд╛рдгреБ рдЕрдкрд░реЗрд╢рди рд╣реЛрдЗрдиред рдпрджрд┐ рд▓реЗрдЦрди рдЕрд╕рдлрд▓ рднрдпреЛ рднрдиреЗ, рд▓реЗрдЦрди рдЖрдВрд╢рд┐рдХ рд░реВрдкрдорд╛ рдмрд┐рдЧреНрд░рди рд╕рдХреНрдЫред
- рдзреЗрд░реИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, sshd рд░ login) рдПрдХреИ рд╕рдордпрдорд╛ рдЬрд░реНрдирд▓рдорд╛ рд▓реЗрдЦреНрджрд╛ рджреНрд╡рдиреНрджреНрд╡рдмрд╛рдЯ рдмрдЪреНрди, рдлреНрд▓рдХ рд▓рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ рдкрд░рдорд╛рдгреБрддрд╛рдХреЛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЧрд░реНрджреИрди рд░ рдЧрддрд┐рд░реЛрдз рдирд┐рдореНрддреНрдпрд╛рдЙрди рд╕рдХреНрдЫред
RFC рд▓реЗрдЦрдХрд▓реЗ SQLite рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рдкрдХреНрд╖рдорд╛ рдмрд╛рдЗрдирд░реА рдврд╛рдБрдЪрд╛рд╣рд░реВ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рддреНрдпрд╛рдЧреНрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рд╛рдЦреЗрдХрд╛ рдЫрдиреНред рдкреНрд░рддреНрдпреЗрдХ рд▓рдЧ рдкреНрд░рдХрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╕рдорд╛рди C рдЗрдиреНрдЯрд░рдлреЗрд╕ рднрдПрдХреЛ рдЫреБрдЯреНрдЯреИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдБрджреИрдЫ: liblastlog2, libbtmp2, libutmp2, рд░ libwtmp2ред рд╕рдмреИ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрд▓реЗ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдЫрдиреН рдЬрд╕рдХреЛ рд╕реНрдХрд┐рдорд╛рдорд╛ ремрек-рдмрд┐рдЯ рдЯрд╛рдЗрдорд╕реНрдЯреНрдпрд╛рдореНрдкрд╣рд░реВ (INTEGER рдкреНрд░рдХрд╛рд░) рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд░ рд╕рдордп рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред рдЕрдиреБрдХреВрд▓рддрд╛ рддреЛрдбреЗрд░ (ALTER TABLE рдорд╛рд░реНрдлрдд) рдирдпрд╛рдБ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдердкреНрди рд╕рдХрд┐рдиреНрдЫред
SQLite рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкрдХреНрд╖рдорд╛ рд░рд╣реЗрдХрд╛ рдХреЗрд╣реА рддрд░реНрдХрд╣рд░реВрдорд╛ рдпреБрдЧрд╛рдиреНрддрдХрд╛рд░реА рд╕рдордп рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди ремрек-рдмрд┐рдЯ INTEGER рдкреНрд░рдХрд╛рд░рдХреЛ рдкреНрд░рдпреЛрдЧ, рдкреВрд░реНрдг рд╕реНрдХреНрдпрд╛рдирдХреЛ рд╕рдЯреНрдЯрд╛ рд░реЗрдХрд░реНрдбрд╣рд░реВ рдЫрдиреМрдЯ рд░реВрдкрдорд╛ рдкрд╣реБрдБрдЪ рдЧрд░реЗрд░ I/O рдШрдЯрд╛рдЙрди рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧ, рдЕрд╡рд╕реНрдерд┐рдд рд░реЗрдХрд░реНрдбрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реА рдирдпрд╛рдБ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдердкреНрдиреЗ рдХреНрд╖рдорддрд╛, ACID рд▓реЗрдирджреЗрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди, рд▓рдХ рдмрд┐рдирд╛ рд╕рдорд╡рд░реНрддреА рдкрд╣реБрдБрдЪрдХреЛ рд▓рд╛рдЧрд┐ WAL (рд▓реЗрдЦрди-рдЕрдЧрд╛рдбрд┐ рд▓рдЧрд┐рдЩ) рдореЛрдб, рд░ SQLite рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред
рд╕рд╣рдЬ рд╕рдВрдХреНрд░рдордг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди, рджреЛрд╣реЛрд░реЛ-рд▓реЗрдЦрди рд░рдгрдиреАрддрд┐ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ:
- рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓рд╣рд░реВ (рд▓рдЧрдЗрди, sshd, sudo, cron, рдЖрджрд┐) рдорд╛ рд▓реЗрдЦреНрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВрд▓рд╛рдИ рдЙрдкрдпреБрдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдорд╛рд░реНрдлрдд рдкреБрд░рд╛рдиреЛ рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓ рд░ рдирдпрд╛рдБ SQLite рдбрд╛рдЯрд╛рдмреЗрд╕ рджреБрд╡реИрдорд╛ рдПрдХреИрд╕рд╛рде рд▓реЗрдЦреНрди рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░рд┐рдиреНрдЫред
- рдЫрд┐рдЯреЛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ SQLite рдбрд╛рдЯрд╛рдмреЗрд╕рдмрд╛рдЯ рдбреЗрдЯрд╛ рдкрдвреНрдиреЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрдХреЛ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ (last2, lastb2, who2, lastlog2) рд╡рд┐рдХрд╛рд╕ рднрдЗрд░рд╣реЗрдХрд╛ рдЫрдиреНред рдкреБрд░рд╛рдирд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрд▓реЗ рдЙрд╣реА рдлрд╛рдЗрд▓рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдЫрдиреНред
- рдХреЗрд╣реА рд╡рд░реНрд╖рдорд╛, рдЬрдм рдзреЗрд░реИрдЬрд╕реЛ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд╣реБрдиреНрдЫрдиреН, рдкреБрд░рд╛рдиреЛ рдврд╛рдБрдЪрд╛рд╣рд░реВрдорд╛ рд░реЗрдХрд░реНрдбрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдЕрд╕рдХреНрд╖рдо рд╣реБрди рд╕рдХреНрдЫ, рд░ рдкреБрд░рд╛рдирд╛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдШреЛрд╖рд┐рдд рд╣реБрди рд╕рдХреНрдЫред
рдердк рдЫрд▓рдлрд▓рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╢реНрдирд╣рд░реВ:
- рдЫреБрдЯреНрдЯрд╛рдЫреБрдЯреНрдЯреИ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрдиреЗ рд╡рд╛ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдПрдЙрдЯреИрдорд╛ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрдиреЗ рд╕рд▓реНрд▓рд╛рд╣ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, libsession2)ред
- рдкреБрд╕реНрддрдХрд╛рд▓рдп рд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирд╛рдорд╣рд░реВ рдЫрдиреМрдЯ рдЧрд░реНрджреИ (рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдирд╛рдорд╣рд░реВ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рд╡рд╛ рдердк рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдорд╣рд░реВрдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН)ред
- рдбрд╛рдЯрд╛рдмреЗрд╕ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕реНрдерд╛рди (/var/lib/ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрдерд┐рддрд┐рдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛ /var/log/ рд▓рдЧрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐)ред
- рд╕реНрдХреАрдорд╛ рд╕рдВрд╕реНрдХрд░рдг рд░ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рд╕рдВрдпрдиреНрддреНрд░ред
- рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рджреГрд╢реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ SQLite рдкреНрд░рджрд░реНрд╢рди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ (рд╕рд░реНрднрд░рд╣рд░реВ, рдПрдореНрдмреЗрдбреЗрдб рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ)ред
- SQLite рдУрднрд░рдХрд┐рд▓ рд╣реБрди рд╕рдХреНрдиреЗ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд▓реНрдХрд╛ рдмрд╛рдЗрдирд░реА рдврд╛рдБрдЪрд╛рдорд╛ рд▓рдЧрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреЗ рдлрд▓рдмреНрдпрд╛рдХ рдмреНрдпрд╛рдХрдПрдиреНрдб рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ (рдЬрд╕реНрддреИ, рдЧрдореНрднреАрд░ рдореЗрдореЛрд░реА рдЕрд╡рд░реЛрдзрд╣рд░реВ рднрдПрдХрд╛ рдПрдореНрдмреЗрдбреЗрдб рдЙрдкрдХрд░рдгрд╣рд░реВ)ред
рд╕реНрд░реЛрдд: opennet.ru
