рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ Veeam Backup & Replication v9.5 рд╕реЗ MS Teams рддрдХ рдХреА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреА рдЬрд╛рдПред рдкреЛрд╕реНрдЯ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рди рдХреЗрд╡рд▓ рдЗрд╕рдореЗрдВ, рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рджреВрдд рдореЗрдВ рднреА рдХрд╛рдо рдХрд░реЗрдЧреА - рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдо рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдЕрдкрдиреЗ рдмреИрдХрдЕрдк рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рд╣рдорд╛рд░реЗ рдХрдорд╛рдВрдб рдЪреИрдирд▓ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕рдорд╛рд░реЛрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдпрд╣ рдмрдЪреНрдЪреЛрдВ рдФрд░ рд╡рдпрд╕реНрдХреЛрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рдпрд╣ рдЖрдкрдХреА рдЖрддреНрдорд╛ рдХреЛ рдкреНрд░рд╕рдиреНрди рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрддреНрд╕рд╡ рдХреА рдореЗрдЬ рдХреА рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд╕рдЬрд╛рд╡рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЖрдк рд╕реНрд╡рдпрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╕ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдореИрдВ рдЖрдкрдХреА рдХрд▓реНрдкрдирд╛ рдХреЛ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ - рд╣рдо рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рд░рд▓рддрдо рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд░реЗрдВрдЧреЗ: рд╡реАрдо SQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд▓реВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рдереЛрдбрд╝рд╛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ рдФрд░ рдЗрдирдХрдорд┐рдВрдЧ рд╡реЗрдмрд╣реВрдХ рдХрдиреЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪреИрдирд▓ рдХреЛ рднреЗрдЬреЗрдВред рдпреЗ рд╣реИ рдПрдХреНрд╢рди рдкреНрд▓рд╛рди:
- рд╣рдо Veeam рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ [dbo] [Backup.Model.JobSession] рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
- рд╣рдо рдЪреИрдирд▓ рдореЗрдВ рдЗрдирдХрдорд┐рдВрдЧ рд╡реЗрдмрд╣реВрдХ рдХрдиреЗрдХреНрдЯрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдо рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
- рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░ рдЬрд╛рджреВ рдХреА рдорджрдж рд╕реЗ рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛ред
- рдПрдХ рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рд╕реНрдХреЗрдЪ рд▓рдкреЗрдЯреЗрдВред
- рдпрд╣ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
рд╡реАрдо рдмреИрдХрдЕрдк рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ MS SQL рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдмрдирд╛рдПрдВред рд╣рдо MS SQL рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реНрд╡рд╕реНрдерд╛рдкрд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдмрд╣реБрдд рд╣реА рдиреНрдпреВрдирддрдо рдЕрдзрд┐рдХрд╛рд░ рджреЗрддреЗ рд╣реИрдВ - рдХреЗрд╡рд▓ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЪрдпрди рдХрд░реЗрдВред
рдпрд╣ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрд░реЛрдз рдХреЛ рдкреНрд░реА-рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ:
CREATE LOGIN ms_teams_watcher WITH PASSWORD = '123@qwe' USE [VeeamBackup] CREATE USER ms_teams_watcher FOR LOGIN ms_teams_watcher GRANT SELECT ON [dbo].[Backup.Model.JobSessions] TO ms_teams_watcher
рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рди рднреВрд▓реЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдЖрдПрдВред
рдпрджрд┐ рдЖрдкрдиреЗ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдХрд┐рдпрд╛, рддреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ ... рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛:

рд▓реЗрдХрд┐рди рдЪреБрдиреЗрдВ - рдХреГрдкрдпрд╛:

GDPR рдХреА рдорд╣рд┐рдорд╛ - рдЗрд╕ рдирдореВрдиреЗ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░, рдПрдХ рднреА рдЙрддреНрдкрд╛рджрди рдЖрдзрд╛рд░ рдХрд╛ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ! рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ms_teams_watcher рд╣реИ рдФрд░ рд╣рдо рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо
pyodbc рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВрдЧреЗ - рдХреЛрдИ SQLAlchemy, рдХреЗрд╡рд▓ рдХрдЯреНрдЯрд░!
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓реЗрдВ (рд╡рд░реНрдЧ
SQLConnectorVeeamDB рджреЗрдЦреЗрдВ) рдФрд░ рдЙрди рд╕рднреА рд╕рддреНрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬреЛ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдХреЗ рджреМрд░рд╛рди рдкреВрд░реЗ рд╣реБрдП рдереЗ:
рд░реЛрдВред SQLConnectorVeeamDB.select_completed_job_sessions_during_latest_hour:
query = 'select job_name,job_type, usn, end_time, result, reason ' \ 'from [dbo].[Backup.Model.JobSessions] ' \ 'where state = -1 and result != -1 and datediff(HH,[end_time],GETDATE()) <= 1 ' \ 'order by usn'
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЕрдВрддрд┐рдо usn рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк рдЙрд╕рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдордп рд╕реЗ рдирд╣реАрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рд╛, рддреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╢реНрди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
query = 'select top 1 [usn] ' \ 'from [dbo].[Backup.Model.JobSessions] ' \ 'order by usn desc'
рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ, рдпрд╣ usn рдХрд┐рд╕реА рднреА рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ рдЬреЛ рдкрд╣рд▓рд╛ рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди JobSession рдЬреЛ рдкрд╣рд▓реЗ рдЪрдпрди рдореЗрдВ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдЕрднреА рднреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд╣рдореЗрдВ рдкреВрд░реНрдг рдирд╣реАрдВ рдорд┐рд▓рд╛ (рдкрд░рд┐рдгрд╛рдо = -1) рд╕рддреНрд░ (рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ! = -1) - рдмрд╕ рдпреВрдПрди рдпрд╛рдж рд░рдЦреЗрдВ, рдЗрд╕реЗ рдЖрдИрдПрдирдЖрдИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦреЗрдВ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдЕрдиреБрд░реЛрдз рджреЛрд╣рд░рд╛рдПрдВ (рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ SQLConnectorVeeamDB .select_completed_job_session_after_usn)ред
рдПрдордПрд╕ рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдирдХрдорд┐рдВрдЧ рд╡реЗрдмрд╣реВрдХ рдХрдиреЗрдХреНрдЯрд░ рдмрдирд╛рдПрдВ
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ MS Teams рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╕реЗ рдкреВрдЫреЗрдВ (рд╕рдореНрдорд╛рди рдХрд░реЗрдВ, рдпрджрд┐ рдпрд╣ рдЖрдк рд╣реИрдВ), рдЬреИрд╕рд╛ рдХрд┐
рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд
рд╣реИ ред рдЕрдм
рдЖрдиреЗ рд╡рд╛рд▓реЗ WebHook рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдХрдиреЗрдХреНрдЯрд░
рдмрдирд╛рдПрдВ ред рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛? рдЖрдк рд╕реБрдВрджрд░ рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ, рдпреВрдЖрд░рдПрд▓ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рд╕рд╣реЗрдЬреЗрдВред
рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛
рдпрд╣рд╛рдВ рдЖрдк рддреИрдпрд╛рд░ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдпрд╛ рд╕реНрдХреЗрдЪ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдЖрдЧреЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦреЗрдВ_, рдЗрд╕реЗ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд░рдЦреЗрдВ, рднрд░реЗрдВ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗ рдЕрдВрдбрд░рд▓рд╛рдЗрди рд╣рдЯрд╛ рджреЗрдВред
рдпрд╣рд╛рдБ рд╡реИрдЪрд╛рд░рд┐рдХ рд╕реНрдХреЗрдЪ рдпреЛрдЬрдирд╛ рджрд┐рдЦрддреА рд╣реИ (рдЪрд┐рддреНрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ):

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЖрд░реЗрдЦ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд VeeamEvent class (рд╕рд┐рд░реНрдл рдПрдХ рдбреЗрдЯрд╛рд╕реЗрдВрдЯрд░) рдХреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдФрд░ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рднреЗрдЬрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрдирд╛рддреЗ рд╣реБрдП, Veeam рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рджрд┐рдирд╛рдВрдХ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реИред
рд╡рд░реНрдЧ VeeamEvent (рдСрдмреНрдЬреЗрдХреНрдЯ)
рдЬрд┐рд╕ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╣рдо рддрд┐рдерд┐ рд▓реЗрддреЗ рд╣реИрдВ, рдЙрд╕рдореЗрдВ рд╡реЗрдо рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХрд╛рд░реНрдп рд▓реЙрдЧ рдЗрди рд╣реИрдВред
рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ job_type рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ - рдХреНрдпрд╛ рд╣рдо рдПрдХ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрдВрд╕реЛрд▓ рдХреЛ рдЦреЛрд▓ рджрд┐рдпрд╛ рд╣реИ рдпрд╛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдкреВрд░реА рдХрд░ рд▓реА рд╣реИ?
- 0 - рдмреИрдХрдЕрдк рдХрд╛рд░реНрдп
- 1 - рдкреНрд░рддрд┐рдХреГрддрд┐ рдиреМрдХрд░реА
- 3 - рд╕реНрдпреЛрд░рдмреИрдХ рдЬреЙрдм
- 24 - рдЯреЗрдк рдЯреВ рдЬреЙрдм рдлрд╛рдЗрд▓
- 28 - рдЯреЗрдк рдЯреВ рдЬреЙрдм рдХрд╛ рдмреИрдХрдЕрдк
- 51 - рдмреИрдХрдЕрдк рдХреЙрдкреА рдХрд╛рд░реНрдп
- 100 - рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмреИрдХрдЕрдк
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВ, рдЕрдЧрд░ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рдореИрдВ рдЕрдиреБрд░реЛрдз рдкрд░ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдВрдХреЗрдд рджреВрдВрдЧрд╛ред рд╕рдорд╛рдкреНрдд рдХрд╛рд░реНрдп рдпрд╛ рддреЛ рд╕рдлрд▓рддрд╛ рдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрднреА-рдХрднреА рд╡рд┐рдлрд▓ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдирддреАрдЬрддрди, рд╣рдо рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдпрд╣ рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ + рдХрд╛рд░реНрдп рдХрд╛ рдирд╛рдо, usn, рдЗрд╕рдХреЗ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рдФрд░ рдкреВрд░реНрдг рд╕рдордп рдХрд╛ рд╡рд┐рд╡рд░рдг рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред рдпрд╣ рд╡рд╣ рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рд╕рдВрджреЗрд╢рд╡рд╛рд╣рдХ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред
send_notification_to_web_hook ()
рдпрд╣ рдЕрднреА рднреА рдпрд╣рд╛рдВ рд╕рд░рд▓ рд╣реИ - рд╣рдо рддреИрдпрд╛рд░-рдХрд┐рдП рдЧрдП
pymsteams рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐
рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рд╕рдВрджреЗрд╢ рдПрдХрддреНрд░
рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ
request.post рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрддрд╛ рд╣реИред рдЕрдкрдиреЗ рдирдореВрдиреЗ рдореЗрдВ, рдореИрдВрдиреЗ O365 рдХрд╛рд░реНрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ WebHooks рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдп рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдмрд╕ рдХрдИ рд╕рдВрджреЗрд╢ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛ рджрд┐рдП рд╣реИрдВред
team_connection = pymsteams.connectorcard(web_hook_url) if event_object.job_type_name is not None: if event_object.result_text == 'success': text = 'A Veeam ' + event_object.job_type_name + ' **"' + str(event_object.job_name) + '"** has finished **successfully** at ' + str(event_object.end_time)[:-7] team_connection.color('005f4b')
рдлрдВрддрд╛рд╕реА рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧреА рд╣реИ - рдХреЛрдИ рднреА рдкрд╛рда, рдЪрд┐рддреНрд░, рдмрдЯрди рдЖрджрд┐ рдЬреЛрдбрд╝реЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢ рдореБрдЭреЗ рдорд┐рд▓реЗ:
рдПрдХ рдмреИрдХрдЕрдк рдиреМрдХрд░реА рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛
рд╡рд┐рдлрд▓ рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдПрдПрдХ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдПрдВ
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдбреЙрдХрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ
рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЙрдХрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рджреЗрдЦреЗрдВ ред рдЕрдЧрд░ рд╡рд╣рд╛рдБ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
# Version: 1.0 FROM python:3.6.2 MAINTAINER Dmitry Rozhdestvenskiy <dremsama@gmail.com> RUN apt-get update && apt-get install -y --no-install-recommends apt-utils RUN apt-get -y install locales RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen RUN locale-gen RUN apt-get -y install apt-transport-https freetds-dev unixodbc-dev git RUN curl https:
рдбреЙрдХрд░ рдЦреБрдж рд╣реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕рдм рдХреБрдЫ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд▓реЗрддрд╛ рд╣реИ (FROM python: 3.6.2), Github (RUN git рдХреНрд▓реЛрди ...) рдФрд░ package.microsoft.comред
рд╡рд┐рдиреНрдпрд╛рд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдЖрдЧреЗ% рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛_рдирд╛рдо% рдореЗрдВ рдбреЙрдХрдЯрд░рд╛рдЗрд▓ рдбрд╛рд▓реЗрдВ, (рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рднрд░рдирд╛ рдирд╣реАрдВ рднреВрд▓рддреЗ?)ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ:
docker build -t veeam_to_msteams:1.0 -f /path/%directory_name%/Dockerfile /path/%directory_name%/
рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдПрдБ:
docker run --restart=always -it --name veeam_to_msteams -d veeam_to_msteams:1.0 bin/bash /veeam_to_msteams/launch_veeam_to_msteams.sh
рдпрджрд┐ рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓рдХреБрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рддреЛ рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдмрд╕ рдореБрдЦреНрдп рддрд░реНрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рддрд░реНрдХ рдХреЗ рдЪрд▓рд╛рдПрдВред
рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдХрдк рдХреЙрдлреА рднрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджрди рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕реНрдХреЗрдЪ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред "рдЖрдк рдХреЗрд╡рд▓ рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рддреЗ рд╣реИрдВ", рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЗрд╕ рдбрд┐рд▓реАрд╡рд░реА рдХреЛ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдЪреИрдирд▓ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдореИрдВ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рд▓рд╛рдКрдВрдЧрд╛:
- рдЧрд┐рддреБрдм рдкрд░ рдореЗрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ
- рдЕрдЬрдЧрд░ SQL рдбреНрд░рд╛рдЗрд╡рд░ - pyodbc
- рдЗрдирдХрдорд┐рдВрдЧ рд╡реЗрдмрд╣реВрдХ рдХрдиреЗрдХреНрдЯрд░ рдмрдирд╛рдирд╛
- рдЖрдиреЗ рд╡рд╛рд▓реА WebHook рдХрдиреЗрдХреНрдЯрд░ рдХреЛ MS Tea рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
- Pymsteams рдкреБрд╕реНрддрдХрд╛рд▓рдп
- рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЙрдХрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓