ಮತ್ತೊಂದು ಬ್ಯಾಕ್ಅಪ್ - ಸ್ಕ್ರಿಪ್ಟ್ಗಿಂತ ಹೆಚ್ಚು, ಸಿಸ್ಟಮ್ಗಿಂತ ಸರಳವಾಗಿದೆ

ಹಲವಾರು ಬ್ಯಾಕಪ್ ವ್ಯವಸ್ಥೆಗಳಿವೆ, ಆದರೆ ಸೇವೆ ಸಲ್ಲಿಸಿದ ಸರ್ವರ್‌ಗಳು ವಿವಿಧ ಪ್ರದೇಶಗಳು ಮತ್ತು ಕ್ಲೈಂಟ್‌ಗಳಲ್ಲಿ ಹರಡಿಕೊಂಡರೆ ಮತ್ತು ನೀವು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ನೊಂದಿಗೆ ಮಾಡಬೇಕಾದರೆ ಏನು ಮಾಡಬೇಕು?

ಮತ್ತೊಂದು ಬ್ಯಾಕ್ಅಪ್ - ಸ್ಕ್ರಿಪ್ಟ್ಗಿಂತ ಹೆಚ್ಚು, ಸಿಸ್ಟಮ್ಗಿಂತ ಸರಳವಾಗಿದೆ

ಗುಡ್ ಮಧ್ಯಾಹ್ನ, ಹಬ್ರ್!
ನನ್ನ ಹೆಸರು ನಟಾಲಿಯಾ. ನಾನು NPO ಕ್ರಿಸ್ಟಾದಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ವಾಹಕರ ಗುಂಪಿನ ತಂಡದ ನಾಯಕನಾಗಿದ್ದೇನೆ. ನಮ್ಮ ಕಂಪನಿಯ ಪ್ರಾಜೆಕ್ಟ್ ಗ್ರೂಪ್‌ಗೆ ನಾವು ಆಪ್‌ಗಳು. ನಾವು ವಿಶಿಷ್ಟವಾದ ಪರಿಸ್ಥಿತಿಯನ್ನು ಹೊಂದಿದ್ದೇವೆ: ನಮ್ಮ ಕಂಪನಿಯ ಸರ್ವರ್‌ಗಳಲ್ಲಿ ಮತ್ತು ಕ್ಲೈಂಟ್‌ಗಳ ಸೈಟ್‌ಗಳಲ್ಲಿರುವ ಸರ್ವರ್‌ಗಳಲ್ಲಿ ನಾವು ನಮ್ಮ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಸ್ಥಾಪಿಸುತ್ತೇವೆ ಮತ್ತು ನಿರ್ವಹಿಸುತ್ತೇವೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಸಂಪೂರ್ಣ ಸರ್ವರ್ ಅನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ. "ಅಗತ್ಯ ಡೇಟಾ" ಮಾತ್ರ ಮುಖ್ಯ: DBMS ಮತ್ತು ಪ್ರತ್ಯೇಕ ಫೈಲ್ ಸಿಸ್ಟಮ್ ಡೈರೆಕ್ಟರಿಗಳು. ಸಹಜವಾಗಿ, ಕ್ಲೈಂಟ್‌ಗಳು ತಮ್ಮದೇ ಆದ ಬ್ಯಾಕಪ್ ನಿಯಮಾವಳಿಗಳನ್ನು ಹೊಂದಿದ್ದಾರೆ (ಅಥವಾ ಹೊಂದಿಲ್ಲ) ಮತ್ತು ಅಲ್ಲಿ ಬ್ಯಾಕ್‌ಅಪ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಕೆಲವು ರೀತಿಯ ಬಾಹ್ಯ ಸಂಗ್ರಹಣೆಯನ್ನು ಒದಗಿಸುತ್ತಾರೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಬ್ಯಾಕಪ್ ರಚಿಸಿದ ನಂತರ, ಬಾಹ್ಯ ಸಂಗ್ರಹಣೆಗೆ ಕಳುಹಿಸುವುದನ್ನು ನಾವು ಖಚಿತಪಡಿಸುತ್ತೇವೆ.

ಸ್ವಲ್ಪ ಸಮಯದವರೆಗೆ, ಬ್ಯಾಕ್‌ಅಪ್ ಉದ್ದೇಶಗಳಿಗಾಗಿ, ನಾವು ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್‌ನೊಂದಿಗೆ ಮಾಡಿದ್ದೇವೆ, ಆದರೆ ಕಾನ್ಫಿಗರೇಶನ್ ಆಯ್ಕೆಗಳು ಬೆಳೆದಂತೆ, ಈ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಸಂಕೀರ್ಣತೆಯು ಪ್ರಮಾಣಾನುಗುಣವಾಗಿ ಬೆಳೆಯಿತು ಮತ್ತು ಒಂದು ಹಂತದಲ್ಲಿ ನಾವು “ಅದನ್ನು ನೆಲಕ್ಕೆ ಹಾಳುಮಾಡುವ ಅಗತ್ಯಕ್ಕೆ ಬಂದೆವು, ತದನಂತರ ...”.

ರೆಡಿಮೇಡ್ ಪರಿಹಾರಗಳು ವಿವಿಧ ಕಾರಣಗಳಿಗಾಗಿ ಸೂಕ್ತವಲ್ಲ: ಬ್ಯಾಕ್‌ಅಪ್‌ಗಳನ್ನು ವಿಕೇಂದ್ರೀಕರಿಸುವ ಅಗತ್ಯತೆ, ಕ್ಲೈಂಟ್‌ನಲ್ಲಿ ಸ್ಥಳೀಯವಾಗಿ ಬ್ಯಾಕಪ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸುವ ಅವಶ್ಯಕತೆ, ಸೆಟಪ್‌ನ ಸಂಕೀರ್ಣತೆ, ಆಮದು ಪರ್ಯಾಯ, ಪ್ರವೇಶ ನಿರ್ಬಂಧಗಳು.

ನಮ್ಮದೇ ಆದದ್ದನ್ನು ಬರೆಯುವುದು ಸುಲಭ ಎಂದು ನಮಗೆ ತೋರುತ್ತದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಮುಂದಿನ N ವರ್ಷಗಳವರೆಗೆ ನಮ್ಮ ಪರಿಸ್ಥಿತಿಗೆ ಸಾಕಾಗುವಷ್ಟು ಏನನ್ನಾದರೂ ಪಡೆಯಲು ನಾನು ಬಯಸುತ್ತೇನೆ, ಆದರೆ ಸಂಭಾವ್ಯವಾಗಿ ವ್ಯಾಪ್ತಿಯನ್ನು ವಿಸ್ತರಿಸುವ ಸಾಧ್ಯತೆಯಿದೆ.

ಕಾರ್ಯದ ಷರತ್ತುಗಳು ಈ ಕೆಳಗಿನಂತಿವೆ:

  1. ಮೂಲ ಬ್ಯಾಕಪ್ ನಿದರ್ಶನವು ಸ್ವಾಯತ್ತವಾಗಿದೆ ಮತ್ತು ಸ್ಥಳೀಯವಾಗಿ ಚಲಿಸುತ್ತದೆ
  2. ಬ್ಯಾಕ್‌ಅಪ್‌ಗಳು ಮತ್ತು ಲಾಗ್‌ಗಳ ಸಂಗ್ರಹಣೆಯು ಯಾವಾಗಲೂ ಕ್ಲೈಂಟ್‌ನ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿದೆ
  3. ಒಂದು ನಿದರ್ಶನವು ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ - ಒಂದು ರೀತಿಯ "ಕನ್ಸ್ಟ್ರಕ್ಟರ್"
  4. ಪ್ರಸ್ತುತ ಲಿನಕ್ಸ್ ವಿತರಣೆಗಳೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಯ ಅಗತ್ಯವಿದೆ, ಹಳೆಯದನ್ನು ಒಳಗೊಂಡಂತೆ, ಸಂಭಾವ್ಯ ಅಡ್ಡ-ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅಪೇಕ್ಷಣೀಯವಾಗಿದೆ
  5. ನಿದರ್ಶನದೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು, ssh ಮೂಲಕ ಪ್ರವೇಶವು ಸಾಕಾಗುತ್ತದೆ; ಹೆಚ್ಚುವರಿ ಪೋರ್ಟ್‌ಗಳನ್ನು ತೆರೆಯುವ ಅಗತ್ಯವಿಲ್ಲ
  6. ಸೆಟಪ್ ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಯ ಗರಿಷ್ಠ ಸುಲಭ
  7. ವಿಭಿನ್ನ ಸರ್ವರ್‌ಗಳಿಂದ ಬ್ಯಾಕ್‌ಅಪ್‌ಗಳ ಸ್ಥಿತಿಯನ್ನು ಕೇಂದ್ರೀಯವಾಗಿ ವೀಕ್ಷಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಪ್ರತ್ಯೇಕ ನಿದರ್ಶನವನ್ನು ಹೊಂದಲು ಸಾಧ್ಯವಿದೆ (ಆದರೆ ಅಗತ್ಯವಿಲ್ಲ)

ನಾವು ಏನನ್ನು ತಂದಿದ್ದೇವೆ ಎಂಬುದನ್ನು ನೀವು ಇಲ್ಲಿ ನೋಡಬಹುದು: github.com/javister/krista-backup
ತಂತ್ರಾಂಶವನ್ನು python3 ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ; Debian, Ubuntu, CentOS, AstraLinux 1.6 ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ದಾಖಲಾತಿಯನ್ನು ರೆಪೊಸಿಟರಿಯ ಡಾಕ್ಸ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಪೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ.

ಸಿಸ್ಟಮ್ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಮೂಲ ಪರಿಕಲ್ಪನೆಗಳು:
ಕ್ರಿಯೆ - ಒಂದು ಪರಮಾಣು ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಕ್ರಿಯೆ (ಡೇಟಾಬೇಸ್ ಬ್ಯಾಕಪ್, ಡೈರೆಕ್ಟರಿ ಬ್ಯಾಕಪ್, ಡೈರೆಕ್ಟರಿ A ನಿಂದ ಡೈರೆಕ್ಟರಿ B ಗೆ ವರ್ಗಾವಣೆ, ಇತ್ಯಾದಿ). ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕ್ರಿಯೆಗಳು ಕೋರ್/ಆಕ್ಷನ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿವೆ
ಕಾರ್ಯ - ಕಾರ್ಯ, ಒಂದು ತಾರ್ಕಿಕ "ಬ್ಯಾಕಪ್ ಕಾರ್ಯ" ವನ್ನು ವಿವರಿಸುವ ಕ್ರಿಯೆಗಳ ಒಂದು ಸೆಟ್
ವೇಳಾಪಟ್ಟಿ - ವೇಳಾಪಟ್ಟಿ, ಕಾರ್ಯವನ್ನು ನಿರ್ವಹಿಸುವ ಸಮಯದ ಐಚ್ಛಿಕ ಸೂಚನೆಯೊಂದಿಗೆ ಕಾರ್ಯಗಳ ಒಂದು ಸೆಟ್

ಬ್ಯಾಕಪ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು yaml ಫೈಲ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ; ಸಾಮಾನ್ಯ ಸಂರಚನಾ ರಚನೆ:

  • ಸಾಮಾನ್ಯ ಸೆಟ್ಟಿಂಗ್ಗಳು
  • ಕ್ರಿಯೆಗಳ ವಿಭಾಗ: ಈ ಸರ್ವರ್‌ನಲ್ಲಿ ಬಳಸಲಾದ ಕ್ರಿಯೆಗಳ ವಿವರಣೆ
  • ವೇಳಾಪಟ್ಟಿ ವಿಭಾಗ: ಎಲ್ಲಾ ಕಾರ್ಯಗಳ ವಿವರಣೆ (ಕ್ರಿಯೆಗಳ ಸೆಟ್) ಮತ್ತು ಕ್ರಾನ್ ಮೂಲಕ ಅವುಗಳ ಉಡಾವಣೆಯ ವೇಳಾಪಟ್ಟಿ, ಅಂತಹ ಉಡಾವಣೆ ಅಗತ್ಯವಿದ್ದರೆ

ಉದಾಹರಣೆ ಸಂರಚನೆಯನ್ನು ಇಲ್ಲಿ ಕಾಣಬಹುದು

ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಸ್ತುತ ಏನು ಮಾಡಬಹುದು:

  • ನಮಗೆ ಮುಖ್ಯ ಕಾರ್ಯಾಚರಣೆಗಳು ಬೆಂಬಲಿತವಾಗಿದೆ: Pg_dump ಮೂಲಕ PostgreSQL ಬ್ಯಾಕಪ್, ಟಾರ್ ಮೂಲಕ ಫೈಲ್ ಸಿಸ್ಟಮ್ ಡೈರೆಕ್ಟರಿ ಬ್ಯಾಕಪ್; ಬಾಹ್ಯ ಸಂಗ್ರಹಣೆಯೊಂದಿಗೆ ಕಾರ್ಯಾಚರಣೆಗಳು; ಡೈರೆಕ್ಟರಿಗಳ ನಡುವೆ rsync; ಬ್ಯಾಕಪ್ ತಿರುಗುವಿಕೆ (ಹಳೆಯ ಪ್ರತಿಗಳನ್ನು ಅಳಿಸುವುದು)
  • ಬಾಹ್ಯ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಕರೆಯುವುದು
  • ಪ್ರತ್ಯೇಕ ಕಾರ್ಯದ ಹಸ್ತಚಾಲಿತ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆ
    /opt/KristaBackup/KristaBackup.py run make_full_dump
  • ನೀವು ಒಂದೇ ಕಾರ್ಯವನ್ನು ಅಥವಾ ಸಂಪೂರ್ಣ ವೇಳಾಪಟ್ಟಿಯನ್ನು ಕ್ರಾಂಟಾಬ್‌ಗೆ ಸೇರಿಸಬಹುದು (ಅಥವಾ ತೆಗೆದುಹಾಕಬಹುದು).
    /opt/KristaBackup/KristaBackup.py enable all
  • ಬ್ಯಾಕಪ್ ಫಲಿತಾಂಶಗಳ ಆಧಾರದ ಮೇಲೆ ಪ್ರಚೋದಕ ಫೈಲ್ ಅನ್ನು ರಚಿಸುವುದು. ಬ್ಯಾಕ್‌ಅಪ್‌ಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು Zabbix ಜೊತೆಯಲ್ಲಿ ಈ ಕಾರ್ಯವು ಉಪಯುಕ್ತವಾಗಿದೆ
  • ವೆಬ್‌ಪಿ ಅಥವಾ ವೆಬ್ ಮೋಡ್‌ನಲ್ಲಿ ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಕೆಲಸ ಮಾಡಬಹುದು
    /opt/KristaBackup/KristaBackup.py web start [--api]

ಮೋಡ್‌ಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸ: ವೆಬ್‌ಪಿಯು ವೆಬ್ ಇಂಟರ್‌ಫೇಸ್ ಅನ್ನು ಹೊಂದಿಲ್ಲ, ಆದರೆ ಅಪ್ಲಿಕೇಶನ್ ಮತ್ತೊಂದು ನಿದರ್ಶನದಿಂದ ವಿನಂತಿಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ. ವೆಬ್ ಮೋಡ್‌ಗಾಗಿ, ನೀವು ಫ್ಲಾಸ್ಕ್ ಮತ್ತು ಹಲವಾರು ಹೆಚ್ಚುವರಿ ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸಬೇಕಾಗುತ್ತದೆ, ಮತ್ತು ಇದು ಎಲ್ಲೆಡೆ ಸ್ವೀಕಾರಾರ್ಹವಲ್ಲ, ಉದಾಹರಣೆಗೆ ಪ್ರಮಾಣೀಕೃತ AstraLinux SE ನಲ್ಲಿ.

ವೆಬ್ ಇಂಟರ್ಫೇಸ್ ಮೂಲಕ, ಸಂಪರ್ಕಿತ ಸರ್ವರ್‌ಗಳ ಬ್ಯಾಕ್‌ಅಪ್‌ಗಳ ಸ್ಥಿತಿ ಮತ್ತು ಲಾಗ್‌ಗಳನ್ನು ನೀವು ವೀಕ್ಷಿಸಬಹುದು: "ವೆಬ್ ನಿದರ್ಶನ" API ಮೂಲಕ "ಬ್ಯಾಕಪ್ ನಿದರ್ಶನಗಳಿಂದ" ಡೇಟಾವನ್ನು ವಿನಂತಿಸುತ್ತದೆ. ವೆಬ್‌ಗೆ ಪ್ರವೇಶಕ್ಕೆ ದೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ, ವೆಬ್‌ಪಿಗೆ ಪ್ರವೇಶ ಅಗತ್ಯವಿಲ್ಲ.

ಮತ್ತೊಂದು ಬ್ಯಾಕ್ಅಪ್ - ಸ್ಕ್ರಿಪ್ಟ್ಗಿಂತ ಹೆಚ್ಚು, ಸಿಸ್ಟಮ್ಗಿಂತ ಸರಳವಾಗಿದೆ

ತಪ್ಪಾದ ಬ್ಯಾಕ್‌ಅಪ್‌ಗಳ ಲಾಗ್‌ಗಳನ್ನು ಬಣ್ಣದಲ್ಲಿ ಗುರುತಿಸಲಾಗಿದೆ: ಎಚ್ಚರಿಕೆ - ಹಳದಿ, ದೋಷ - ಕೆಂಪು.

ಮತ್ತೊಂದು ಬ್ಯಾಕ್ಅಪ್ - ಸ್ಕ್ರಿಪ್ಟ್ಗಿಂತ ಹೆಚ್ಚು, ಸಿಸ್ಟಮ್ಗಿಂತ ಸರಳವಾಗಿದೆ

ಮತ್ತೊಂದು ಬ್ಯಾಕ್ಅಪ್ - ಸ್ಕ್ರಿಪ್ಟ್ಗಿಂತ ಹೆಚ್ಚು, ಸಿಸ್ಟಮ್ಗಿಂತ ಸರಳವಾಗಿದೆ

ನಿರ್ವಾಹಕರಿಗೆ ನಿಯತಾಂಕಗಳಲ್ಲಿ ಚೀಟ್ ಶೀಟ್ ಅಗತ್ಯವಿಲ್ಲದಿದ್ದರೆ ಮತ್ತು ಸರ್ವರ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗಳು ಏಕರೂಪವಾಗಿದ್ದರೆ, ನೀವು ಫೈಲ್ ಅನ್ನು ಕಂಪೈಲ್ ಮಾಡಬಹುದು ಮತ್ತು ಸಿದ್ಧ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ವಿತರಿಸಬಹುದು.

ನಾವು ಈ ಉಪಯುಕ್ತತೆಯನ್ನು ಮುಖ್ಯವಾಗಿ ಅನ್ಸಿಬಲ್ ಮೂಲಕ ವಿತರಿಸುತ್ತೇವೆ, ಅದನ್ನು ಮೊದಲು ಕೆಲವು ಪ್ರಮುಖ ಸರ್ವರ್‌ಗಳಿಗೆ ರೋಲಿಂಗ್ ಮಾಡುತ್ತೇವೆ ಮತ್ತು ಉಳಿದ ಎಲ್ಲದಕ್ಕೂ ಪರೀಕ್ಷಿಸಿದ ನಂತರ.

ಪರಿಣಾಮವಾಗಿ, ನಾವು ಕಾಂಪ್ಯಾಕ್ಟ್, ಅದ್ವಿತೀಯ ನಕಲು ಉಪಯುಕ್ತತೆಯನ್ನು ಸ್ವೀಕರಿಸಿದ್ದೇವೆ ಅದನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಬಹುದು ಮತ್ತು ಅನನುಭವಿ ನಿರ್ವಾಹಕರು ಸಹ ಬಳಸಬಹುದು. ಇದು ನಮಗೆ ಅನುಕೂಲಕರವಾಗಿದೆ - ಬಹುಶಃ ಇದು ನಿಮಗೂ ಉಪಯುಕ್ತವಾಗಿದೆಯೇ?

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ