рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╡реАрдо рдПрдЬреЗрдВрдЯ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдХреБрд╢рд▓ рд╣рд╛рдереЛрдВ рдореЗрдВ рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореБрдЭреЗ рдкрд┐рдЫрд▓реЗ
рд▓реЗрдЦ рдкрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рджреНрд╡рд╛рд░рд╛ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: "рдареАрдХ рд╣реИ, рдХреИрд╕реЗ? рд╕рд░реНрд╡рд░ рдпрд╣ рдмрддрд╛рддреЗ рд╣реБрдП рдкрддреНрд░ рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрдЪрд╛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ! " рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рд╢реНрд▓реЗрд╖рдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╡рд╣ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдирд╣реАрдВ рд╣реИ, рдЕрдиреНрдпрдерд╛
рдзрд╛рдЧрд╛ рдордВрдЪ рдкрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рдерд╛ред рдФрд░ рдЬрдм рд╕реЗ рд▓реЛрдЧ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ!
рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЙрддреНрдкрд╛рдж рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдо рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд░реБрдХреЗрдВрдЧреЗ, рд╣рдо рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ! рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рдкрддреНрд░ рд▓рд┐рдЦреЗрдВрдЧреЗ рдФрд░ рдПрдХ html рдкреГрд╖реНрда рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рджрд┐рдЦрд╛рдКрдВрдЧрд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЖрджреЗрд╢ рдЬреЛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рдХрд╛рдо рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдУ: рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб, рдХреЛрдИ рдЪрд┐рддреНрд░ рдирд╣реАрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдВ: "рд▓рд┐рдирдХреНрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реАрдо рдПрдЬреЗрдВрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ?"
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╡рд╛рдм рдкрд╕рдВрдж рди рдХрд░реЗрдВ, рдореБрдЭреЗ рджреЛрд╖ рди рджреЗрдВред рд▓реЗрдХрд┐рди рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдмрдбрд╝реЗ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣рд╛рдБ рдХреНрдпреЛрдВ рд╣реИ:
- рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╛ рддреЛ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ smpt рд╕рд░реНрд╡рд░ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдХрд┐рд╕реА рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (
mail
рдХрдорд╛рдВрдб) рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдореЗрд▓рдЯреБрдЗрд▓реНрд╕ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдХрдИ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рднреЗрджреНрдпрддрд╛ рдкреИрджрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдЬреЛ рдХрд╣реАрдВ рднреА рдкрддреНрд░ рднреЗрдЬ рд╕рдХреЗрдВред рд╣рд╛рдБ, рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛ рдмрдВрдж рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ, рд╕рдмрдиреЗрдЯ рдХреА рд╕реНрд╡рддрдВрддреНрд░рддрд╛, рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ ... - рджреВрд╕рд░реЗ, рдЪреВрдВрдХрд┐ рдореЗрд▓реНрдпреВрдЯрд┐рд▓реНрд╕ рдкреИрдХреЗрдЬ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдкрд╣рд▓реЗ рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП), рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдЕрдиреНрдпрдерд╛, рд╣рдо рдПрдХ рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╣рд╛рдВ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдордВрдЪ рдкрд░ рдПрдХ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдзрд╛рдЧрд╛ рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ: "рд╕рд░реНрд╡рд░ рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдИрдореЗрд▓ рднреЗрдЬреЗ рдЬрд╛рдПрдВред"
- рдФрд░ рддреАрд╕рд░рд╛, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдмрдбрд╝реЗ рдЙрджреНрдпрдо рдЧреНрд░рд╛рд╣рдХ рд╡реАрдо рдмреИрдХрдЕрдк рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдХрдВрд╕реЛрд▓ рдЙрди рд╕рднреА рдмреИрдХрдЕрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЬрд╛рдиреЗ-рдорд╛рдиреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХрд┐рдП рдЧрдП рдереЗред рдЕрдкрдиреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВред
Veeam Backup & Replication 9.5 Update 4 рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЗрд╕ рдЙрддреНрдкрд╛рдж рдХреЛ рдореБрдлреНрдд рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реЗрд╡рд┐рдд рдЖрднрд╛рд╕реА / рднреМрддрд┐рдХ рдорд╢реАрдиреЛрдВ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рд╕рд╛рдеред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ 3 (рд╕рдорд╛рд╡реЗрд╢реА) рднреМрддрд┐рдХ рд╕рд░реНрд╡рд░ рддрдХ рд╣реИрдВ - рддреЛ рдореБрдлреНрдд рд╡реАрдмреАрдЖрд░ рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдВрдЧреЗред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ 3 рд╕реЗ рдЕрдзрд┐рдХ рдорд╢реАрдиреЗрдВ рд╣реИрдВ, рддреЛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрднреА рднреА рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдХреЗрдВрджреНрд░реАрдп рд░реВрдк рд╕реЗ рдореЙрдирд┐рдЯрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдХреБрдЫ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд╕реА / рд╕реА ++ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдЬрдЧрд░ рдореЗрдВ рдЦреБрдж рдХреЛ рдЦреБрд╢ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИред
veeamconfig
рд╣рдо
veeamconfig
рдХрдорд╛рдВрдб
veeamconfig
ред
veeamconfig
рдЯреАрдо рдЙрддреНрдкрд╛рдж рдХреА рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдирд┐рд╕реНрд╕рдВрджреЗрд╣,
ncurses рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдЫрджреНрдо рднреМрдЧреЛрд▓рд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЖрдВрдЦ рдХреЛ рдЕрдзрд┐рдХ рднрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдЖрдкрдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдХреБрдЫ рдирдП рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕реАрдПрд▓рдЖрдИ рд╣рдорд╛рд░рд╛ рд╕рдм рдХреБрдЫ рд╣реИред
рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб рдХреЗ
рд▓рд┐рдП рд╡реАрдо рдПрдЬреЗрдВрдЯ рдХрд╛ рд╡рд░реНрдгрди рд╕рдВрд╕реНрдХрд░рдг 3.0 рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИред рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА, рдЗрд╕рд▓рд┐рдП рдорддрднреЗрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╡реАрдо рдПрдЬреЗрдВрдЯ рдореЗрдВ рд╕реАрдПрд▓рдЖрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИред рдмрд╕
veeamconfig --help
рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХреЛ рдЙрдкрд▓рдмреНрдз рдЖрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓реЗрдЧреА:
$sudo veeamconfig --help Veeam Agent for Linux (c) Veeam Software AG Usage: veeamconfig [command] Commands: repository - Backup repositories management vbrserver - Veeam Backup and Replication servers management job - Backup jobs management backup - Backups management point - Restore points management license - License management agreement - End User License Agreement management config - Import/export configuration schedule - Jobs schedule configuration cloud - Cloud provider management mode - Operation mode session - Sessions management ui - User interface aap - Application-aware processing version, --version, -v - Product version help, --help, -h - Short help
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд╛рдВрдб рдЖрдкрдХреЛ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд╕
veeamconfig config --help
рдХреЙрд▓ рдХрд░реЗрдВред рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:
Veeam Agent for Linux (c) Veeam Software AG Usage: veeamconfig config [command] Commands: import - Import repositories and jobs into database export - Export repositories and jobs from database grabLogs - Collect support logs bundle patchiso - Create custom Veeam Recovery Media adding all hardware drivers from this system help, --help, -h - Short help
рдпрд╣рд╛рдБ, рд╡реИрд╕реЗ, рд╣рдо
grabLogs
рд▓реЙрдЧ рдХрд▓реЗрдХреНрд╢рди
grabLogs
рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреЛ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд▓реЙрдЧ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЯреАрдо рднреА рд╣реИ рдЬреЛ рд╕рдВрд╕реНрдХрд░рдг 3.0 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА:
$ sudo veeamconfig agreement --help Veeam Agent for Linux (c) Veeam Software AG Usage: veeamconfig agreement [command] Commands: acceptEula - Accept Veeam End User License Agreements acceptThirdPartyLicenses - Accept Veeam 3rd party License Agreement show - Show End User License Agreements acceptance status help, --help, -h - Short help
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 3.0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╕рдордЭреМрддреЛрдВ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рд╣рдордд рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
$ sudo veeamconfig job list I accept Veeam Software End User License Agreement: /usr/share/doc/veeam/EULA (yes/no | y/n): yes I accept the terms of the following 3rd party software components license agreements: /usr/share/doc/veeam/3rd_party (yes/no | y/n):
рддрджрдиреБрд╕рд╛рд░, рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдмрд╛рдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдорд╢реАрди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрджреЗрд╢ рджрд┐рдП рдЧрдП рдереЗ:
veeamconfig agreement acceptEula veeamconfig agreement acceptThirdPartyLicenses
рд╡реЗ рдЖрдкрдХреЛ рдЖрдЧреЗ рдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдмрд┐рдирд╛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╕рдордЭреМрддреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рд╣рдо рдПрдХ рдкрддреНрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╡рд┐рд╖рдп рд╕реЗ рднрдЯрдХ рдЧрдПред
рд╕рд░реНрд╡рд░ рд╕реНрдерд┐рддрд┐ рдирд┐рдЧрд░рд╛рдиреА рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
veeamconfig session list
рдХрдорд╛рдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ:
Job name Type ID State Started at Finished at bj-home Backup {dbe48e88-3df7-4712-a472-09af8fed4e80} Success 2018-12-05 15:43 2018-12-05 15:44 bj-home Backup {c178a799-2935-4bd6-883b-b11278000076} Success 2018-12-05 16:26 2018-12-05 16:26 bj-home Backup {3405dad3-0016-4a00-933e-60ef66b30324} Success 2018-12-06 06:00 2018-12-06 06:00
рдЦреИрд░, рдпрд╣рд╛рдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдХрд┐ рдХрдм рд╕рд░реНрд╡рд░ рдХрд╛ рдмреИрдХрдЕрдк рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдХреНрдпрд╛ рд╕рдлрд▓рддрд╛ рдорд┐рд▓реАред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, "рдПрдЧреНрдЬрд╝реЙрд╕реНрдЯ" рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ рдкрддреНрд░ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╕рд╛рд▓ рдореЗрдВ рдкрддреНрд░ рд▓рдЧрднрдЧ 365 рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓реЗ
рд░рд╛рдЬреНрдп рдХреА рддрд▓рд╛рд╢ рдердХрд╛рдК рд▓рдЧ рд╕рдХрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрд╕ "рдирд┐рдХрд╛рд╕" рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреВрд░рд╛ рдХреЛрдб
рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ
class CSession: @staticmethod def List(): return subproccall( ["veeamconfig", "session", "list"] ) class CSessionInfoList(object): def __init__(self, list): self.list = list def List(self): return self.list @staticmethod def Get(): text = CSession.List() lines = text.split("\n") list = []
рдареАрдХ рд╣реИ, рдЕрдм рдЪрд▓реЛ рдПрдХ рдкрддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЦреБрдж рдХреЛ рднреЗрдЬрддреЗ рд╣реИрдВред
def SendMailsessions(): print "---" print "Sending statistic to administrator:" sessions = veeamlpb.session.CSessionInfoList.Get() recipient = "dear.admin@company.com" subject = "VAL status notification" text = "Statistic:\n" inx = 0; successCount = 0 warningCount = 0 errorCount = 0 for sessionInfo in sessions.List(): if (sessionInfo.State() == "Success"): successCount += 1 elif (sessionInfo.State() == "Warning"): warningCount += 1 else: errorCount += 1 text += str(successCount)+"/"+str(warningCount)+"/"+str(errorCount)+" Success/Warning/Error\n" text += "Last 10 session:\n" for sessionInfo in reversed(sessions.List()): if inx == 10: text += "...\n" break; text += str(inx)+" | "+sessionInfo.State()+" | "+sessionInfo.JobName()+" | "+sessionInfo.StartTime()+" / "+sessionInfo.FinishTime() + "\n"
рдирддреАрдЬрддрди,
mailutils рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
, рд╣рдо рдПрдХ рдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
Statistic: 3/0/0 Success/Warning/Error Last 10 session: 0 | Success | bj-home | 2018-12-06 06:00 / 2018-12-06 06:00 1 | Success | bj-home | 2018-12-05 16:26 / 2018-12-05 16:26 2 | Success | bj-home | 2018-12-05 15:43 / 2018-12-05 15:44 -------------------------------------------------------------------------------- Yours sincerely, Veeam Agent for Linux Monitor
рдкрддреНрд░ рдХреЗрд╡рд▓ рдкрд┐рдЫрд▓реЗ 10 рд╕рддреНрд░реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдкрддреНрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╕рдлрд▓ рдФрд░ рдмрд╣реБрдд рд╕рддреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдХрд╛рд░реНрдп рджрд┐рд╡рд╕ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкрддреНрд░ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдореЗрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдФрд░ рдПрдХ рдХреЙрдлреА рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд░рд╛рдд рдХреЗ рдмреИрдХрдЕрдк рд╕рдлрд▓ рдереЗред
рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк xml-format рдореЗрдВ рд╕рддреНрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╣рд╛рдВ, рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдПрдХрд▓ рд╕рд╛рд░рд╛рдВрд╢ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдорд┐рд▓рд╛рдПрдВ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╣рдореЗрдВ рдПрдХреНрд╕рдПрдордПрд▓-рджреЛ рд▓рд╛рдЗрдиреЗрдВ рдорд┐рд▓реЗрдВрдЧреА:
sessionList = veeamlpb.session.CSessionList() text = sessionList.ToXml()
рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ
sessionListFileName = "session_list.xml" print "Store XML to file: ",sessionListFileName sessionListXmlFile = open(sessionListFileName, "w") sessionListXmlFile.write(text) sessionListXmlFile.close()
рдлрд┐рд░ рд╣рдо рдкреНрд░рд╛рдкреНрдд XML рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВред рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдХрд▓реНрдк рднреА рд╕рдВрднрд╡ рд╣реИ - рд╕рд░реНрд╡рд░ рдПрдХреНрд╕рдПрдордПрд▓ рдХреЛ рдЙрди рдорд╢реАрдиреЛрдВ рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмреИрдХрдЕрдк рд╣реИрдВред рд╕рд░реНрдЬрдХ рдХреМрди рд╣реИ рдпрд╣ рдЕрднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╕рднреА рдорд╢реАрдиреЛрдВ рд╕реЗ рд╕рддреНрд░реЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХреНрд╕рдПрдордПрд▓ рдлрд╛рдЗрд▓реЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХрддреНрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдореИрдВрдиреЗ рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛:
hostname = os.uname()[1] target = "user@admin-desktop:/home/user" os.system("scp ./"+sessionListFileName+" "+target+"/backups/"+hostname+"/session_list.xml")
рдЕрдм, рд╕рд░реНрд╡рд░ рдХреА рдУрд░, рдпрд╣ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдПрдХ рд╕реБрдВрджрд░ HTML рдкреГрд╖реНрда рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред
import veeamlpb import os import datetime import xml.etree.ElementTree as xml def main(): hosts = [] backupsDirectory = "/home/user/backups" for item in os.listdir(backupsDirectory): if item in [".", ".."]: continue if os.path.isdir(os.path.join(backupsDirectory,item)): hosts.append(item) print "item: ",item if len(hosts) == 0: return 0 backupSessionMap = {} for host in hosts: print "found host: ", host sessionInfoFile = os.path.join(os.path.join(backupsDirectory,host), "session_list.xml") sessionList = veeamlpb.session.CSessionInfoList.FromXmlFile(sessionInfoFile) backupSessionMap[host] = sessionList for sessionInfo in sessionList.List(): print "Session:",sessionInfo.ToString() html = xml.Element("html") body = xml.SubElement(html, "body", {"style":"background-color: #00b336;"}) xml.SubElement(body,"h1").text = "Report at "+datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") xml.SubElement(body,"h2").text = "Statistic:" for host in hosts: sessionList = backupSessionMap[host] success=0 warning=0 error=0 if len(sessionList.List()) == 0: continue for sessionInfo in sessionList.List(): if sessionInfo.State() == "Success": success +=1 elif sessionInfo.State() == "Warning": warning +=1 else: error +=1 latestSessionInfo = sessionList.List()[-1] attr = {} if latestSessionInfo.State() == "Success":
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рд╣реИ:

рдореБрдЭреЗ рд╕реБрдВрджрд░ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рдо рдирд╣реАрдВ рдерд╛ред рдХрд╛рд░реНрдп рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдерд╛ рдХрд┐ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рд╢реНрди рдХреЛ рдПрдХ рд╕реЗ рджреЛ рджрд┐рдиреЛрдВ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрджрд┐ рдЖрдк рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк "рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╡реАрдо рдПрдЬреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдУрдкрди рдмреИрдХрдЕрдк рдореЙрдирд┐рдЯрд░" рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдкрд╛рдпрдерди рдореЗрдВ рдХреЛрд░реНрд╕рд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рд╖рдп, рдпрд╛ рд╢рд╛рдпрдж рдбрд┐рдкреНрд▓реЛрдорд╛ рдХреЗ рд▓рд┐рдП рднреА, рдпрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдмрд╣рд╛рдирд╛ред рд╕рд╣рдордд рд╣реИрдВ, 80 рд╡реЗрдВ рд╕реНрддрд░ рдХреЗ рдпреЛрдЧ рдмрдирдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рд╕рднреА рдХреЛрдб
http://www.github.com/CodeImp/veeampy/ рдкрд░
рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдбрд╛рдЙрдирд▓реЛрдб, рдЙрдкрдпреЛрдЧ, рдкреВрд░рдХ рдФрд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкрд░ рдХрд╛рдВрдЯрд╛ред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЛрдб GPL-2 рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдУрдкрдирд╕реЛрд░реНрд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ - рдЯреЗрд╕реНрдЯ рд▓реИрдм рдореЗрдВ рдбреНрд░рд╛рдЗрд╡ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред