Π‘ΠΈΡΡΠ΅ΠΌ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π½ΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ°Π·Π±ΡΠΎΡΠ°Π½Ρ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΡΠ΅Π³ΠΈΠΎΠ½Π°ΠΌ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ?
ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ, Habr!
ΠΠ΅Π½Ρ Π·ΠΎΠ²ΡΡ ΠΠ°ΡΠ°Π»ΡΡ. Π― ΡΠΈΠΌΠ»ΠΈΠ΄ Π³ΡΡΠΏΠΏΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΠΠ Β«ΠΡΠΈΡΡΠ°Β». ΠΡ Ops Π΄Π»Ρ Π³ΡΡΠΏΠΏΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π£ Π½Π°Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ: ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΠΌ Π½Π°ΡΠ΅ ΠΠ ΠΊΠ°ΠΊ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΡΠ°ΠΊ ΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ
Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². ΠΡΠΈ ΡΡΠΎΠΌ Π±ΡΠΊΠ°ΠΏΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ°ΠΆΠ½Ρ Π»ΠΈΡΡ Β«ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅Β»: Π‘Π£ΠΠ ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΈΠΌΠ΅ΡΡ (ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ) ΡΠ²ΠΎΠΈ ΡΠ΅Π³Π»Π°ΠΌΠ΅Π½ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ΠΊΠΎΠ΅ Π²Π½Π΅ΡΠ½Π΅Π΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π»Ρ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π½ΠΈΡ ΡΡΠ΄Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ
ΠΊΠΎΠΏΠΈΠΉ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΡΠΊΠ°ΠΏΠ° ΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΊΡ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅Π΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
ΠΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ Π±ΡΠΊΠ°ΠΏΠ° ΠΌΡ ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠ»ΠΈΡΡ bash-ΡΠΊΡΠΈΠΏΡΠΎΠΌ, Π½ΠΎ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ°ΡΡΠ°Π½ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠΎΡΠ»Π° ΠΈ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°, ΠΈ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΌΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΅Π³ΠΎ Β«ΡΠ°Π·ΡΡΡΠΈΡΡ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ….Β».
ΠΠΎΡΠΎΠ²ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ: ΠΈΠ·-Π·Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄Π΅ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΡΠΊΠ°ΠΏΠΎΠ², ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π±ΡΠΊΠ°ΠΏΠΎΠ² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΈΠΌΠΏΠΎΡΡΠΎΠ·Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠ°ΠΌ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ²ΠΎΡ. ΠΡΠΈ ΡΡΠΎΠΌ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ°ΠΊΠΎΠ΅, ΡΠ΅Π³ΠΎ Ρ Π²Π°ΡΠΈΡ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ N Π»Π΅Ρ, Π½ΠΎ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ.
Π£ΡΠ»ΠΎΠ²ΠΈΡ Π·Π°Π΄Π°ΡΠΈ Π±ΡΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
- Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΡΠ°Π½Ρ Π±ΡΠΊΠ°ΠΏΠ° Π°Π²ΡΠΎΠ½ΠΎΠΌΠ΅Π½, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ
- Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΠΉ ΠΈ Π»ΠΎΠ³ΠΎΠ² Π²ΡΠ΅Π³Π΄Π° Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΠ΅ΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
- ΠΈΠ½ΡΡΠ°Π½Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ β ΡΠ°ΠΊΠΎΠΉ ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½ΡΠΉ Β«ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΒ»
- Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°ΠΌΠΈ Linux, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅, ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½Π° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΡΡΡ
- Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎ ssh, ΠΎΡΠΊΡΡΡΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΡΠΎΠ² Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ
- ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΡΡΠΎΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ
- Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ) ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π±ΡΠΊΠ°ΠΏΠΎΠ² Ρ ΡΠ°Π·Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²
Π’ΠΎ, ΡΡΠΎ Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π·Π΄Π΅ΡΡ:
ΠΠ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° python3; ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Debian, Ubuntu, CentOS, AstraLinux 1.6.
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π²ΡΠ»ΠΎΠΆΠ΅Π½Π° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ docs ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ°:
action β Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π΅ ΠΎΠ΄Π½Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ (Π±ΡΠΊΠ°ΠΏ ΠΠ, Π±ΡΠΊΠ°ΠΏ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π ΠΈ Ρ. Π΄.). Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ actions Π»Π΅ΠΆΠ°Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ core/actions
task β Π·Π°Π΄Π°Π½ΠΈΠ΅, Π½Π°Π±ΠΎΡ actions, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ΄Π½Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ Β«Π·Π°Π΄Π°ΡΡ Π±ΡΠΊΠ°ΠΏΠ°Β»
schedule β ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅, Π½Π°Π±ΠΎΡ task Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π±ΡΠΊΠ°ΠΏΠ° Ρ ΡΠ°Π½ΠΈΡΡΡ Π² yaml-ΡΠ°ΠΉΠ»Π΅; ΠΎΠ±ΡΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³Π°:
- ΠΎΠ±ΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ
- ΡΠ°Π·Π΄Π΅Π» actions: ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π½Π° ΡΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅
- ΡΠ°Π·Π΄Π΅Π» schedule: ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π·Π°Π΄Π°Π½ΠΈΠΉ (Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ) ΠΈ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠΎ ΠΊΡΠΎΠ½Ρ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΡΡΠΊ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ
Π§ΡΠΎ ΡΠΌΠ΅Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ:
- ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π΄Π»Ρ Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ: Π±ΡΠΊΠ°ΠΏ PostgreSQL ΡΠ΅ΡΠ΅Π· pg_dump, Π±ΡΠΊΠ°ΠΏ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π· tar; ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ; rsync ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ; ΡΠΎΡΠ°ΡΠΈΡ Π±ΡΠΊΠ°ΠΏΠΎΠ² (ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΡ ΠΊΠΎΠΏΠΈΠΉ)
- Π²ΡΠ·ΠΎΠ² Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°
- Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠ½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ
/opt/KristaBackup/KristaBackup.py run make_full_dump
- ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ (ΠΈΠ»ΠΈ ΡΠ±ΡΠ°ΡΡ) Π² ΠΊΡΠΎΠ½ΡΠ°Π±Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²ΡΠ΅ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅
/opt/KristaBackup/KristaBackup.py enable all
- Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΡΠΈΠ³Π³Π΅Ρ-ΡΠ°ΠΉΠ»Π° ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ Π±ΡΠΊΠ°ΠΏΠ°. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² ΡΠ²ΡΠ·ΠΊΠ΅ Ρ Zabbix Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π±ΡΠΊΠ°ΠΏΠΎΠ²
- ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠΎΠ½Π΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ webapi ΠΈΠ»ΠΈ web
/opt/KristaBackup/KristaBackup.py web start [--api]
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ: Π² webapi Π½Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° Π·Π°ΠΏΡΠΎΡΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠ°. ΠΠ»Ρ ΡΠ΅ΠΆΠΈΠΌΠ° web Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ flask ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π° ΡΡΠΎ Π½Π΅ Π²Π΅Π·Π΄Π΅ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ AstraLinux SE.
Π§Π΅ΡΠ΅Π· Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ Π»ΠΎΠ³ΠΈ Π±ΡΠΊΠ°ΠΏΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²: Β«Π²Π΅Π±-ΠΈΠ½ΡΡΠ°Π½ΡΒ» Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ Ρ Β«Π±ΡΠΊΠ°ΠΏ-ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ²Β» ΡΠ΅ΡΠ΅Π· API. ΠΠΎΡΡΡΠΏ ΠΊ web ΡΡΠ΅Π±ΡΠ΅Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π΄ΠΎΡΡΡΠΏ ΠΊ webapi β Π½Π΅Ρ.
ΠΠΎΠ³ΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΡ
Π±ΡΠΊΠ°ΠΏΠΎΠ² ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ ΡΠ²Π΅ΡΠΎΠΌ: warning β ΠΆΠ΅Π»ΡΡΠΌ, error β ΠΊΡΠ°ΡΠ½ΡΠΌ.
ΠΡΠ»ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π½Π΅ Π½ΡΠΆΠ½Π° ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΠ‘ ΠΎΠ΄Π½ΠΎΡΠΎΠ΄Π½Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ.
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌ ΠΌΡ ΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ΅ΡΠ΅Π· Ansible, Π²ΡΠΊΠ°ΡΡΠ²Π°Ρ ΡΠ½Π°ΡΠ°Π»Π° Π½Π° ΡΠ°ΡΡΡ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π° ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅.
Π ΠΈΡΠΎΠ³Π΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΡ ΡΡΠΈΠ»ΠΈΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ΄Π΄Π°ΡΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΡ Π΄Π»Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ Π΄Π°ΠΆΠ΅ ΠΌΠ°Π»ΠΎΠΎΠΏΡΡΠ½ΡΠΌΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌΠΈ. ΠΠ°ΠΌ ΡΠ΄ΠΎΠ±Π½ΠΎ β ΠΌΠΎΠΆΠ΅Ρ, ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΠΈ Π²Π°ΠΌ?
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com