Skip to content

Ready-made service for creating recovery points πŸ“‹ | Simple git analogπŸ’Ύ | Supports real and virtual file systemπŸ“

Notifications You must be signed in to change notification settings

psajd/BackupCreator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BackupSystem

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ВыполняСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

  1. ИмССм Π² Repository Ρ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° File A, File B, Folder C.
  2. Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Backup Task, добавляСм Π² Π½Π΅Ρ‘ Ρ‚Ρ€ΠΈ Backup Object, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΠ²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ находящимся Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.
  3. ЗапускаСм Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Backup Task, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Restore Point, ΠΎΠ½ записываСтся Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Storage File A(1), File B(1), Folder C(1).
  4. ЗапускаСм Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΅Ρ‰Ρ‘ Ρ€Π°Π·, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Storage с вСрсиями (2).
  5. УдаляСм ΠΈΠ· Backup Task File B, запускаСм Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΅Ρ‰Ρ‘ Ρ€Π°Π·, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Restore Point, Π΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° Storage - File A(3), Folder C(3).

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ

Под созданиСм Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, подразумСваСтся созданиС ΠΊΠΎΠΏΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ мСстС. БистСма ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ Π² вопросС Π²Ρ‹Π±ΠΎΡ€Π° Storage Algorithm, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для хранСния Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ (Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ, ΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΏΡ€ΠΎ OCP).

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ трСбуСтся Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° Storage Algorithm:

  1. Split Storage – Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ хранСния, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Backup Object Π² Restore Point создаётся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Storage - Π°Ρ€Ρ…ΠΈΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π»Π΅ΠΆΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
  2. Single Storage – Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ‰Π΅Π³ΠΎ хранСния, для всСх Backup Object Π² Restore Point создаётся ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ‰ΠΈΠΉ Storage - Π°Ρ€Ρ…ΠΈΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π»Π΅ΠΆΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Storage Algorithm Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ нСсти ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ†ΠΈΠΈ.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΉ

Π Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ сохранятся ΠΊΠ°ΠΊ Π½Π° локальной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, Ρ‚Π°ΠΊ ΠΈ Π² ΠžΠ—Π£.

Π’ тСстах стоит Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² памяти (InMemoryRepository), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ запускС тСстов Π½Π° настоящСй Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Π±ΡƒΠ΄Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ½ΠΎΠ³ΠΎ мусорных Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ систСмы CI Π½Π΅ Π΄Ρ€ΡƒΠΆΠ°Ρ‚ с запросами ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Π²ΠΎ врСмя автоматичСского выполнСния тСстов.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°:

  • ΠšΠΎΡ€Π½Π΅Π²Π°Ρ дирСктория
    • Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Backup Task
      • Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Restore Point
        • Π€Π°ΠΉΠ»Ρ‹ Storage

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Restore Point

Backup Task ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° созданиС Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ восстановлСния, выступаСт фасадом, инкапсулируя Π»ΠΎΠ³ΠΈΠΊΡƒ выполнСния этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈ создании Backup Task Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Ρ‘ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Repository для хранСния Backup (Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Ρ…), Storage Algorithm.

Backup Task ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ добавлСния ΠΈ удалСния отслСТиваСмых Π΅ΠΉ Backup Object.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния Backup Task являСтся созданиС Restore Point ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π΅ΠΉ Storage Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ Repository.

ВСст кСйсы

  1. ВСст 1
    1. Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Backup Task, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ Split Storage
    2. ДобавляСм Π² Backup Task Π΄Π²Π° Backup Object
    3. ЗапускаСм Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Backup Task
    4. УдаляСм из Backup Task один Backup Object
    5. ЗапускаСм Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Backup Task
    6. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ создано Π΄Π²Π΅ Restore Point ΠΈ Ρ‚Ρ€ΠΈ Storage
  2. ВСст 2 (Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ консольного прилоТСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° настоящСй Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС)
    1. Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Backup Task, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ FileSystemRepository ΠΈ Single Storage
    2. ДобавляСм Π² Backup Task Π΄Π²Π° Backup Object
    3. ЗапускаСм Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Backup Task
    4. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ созданы

About

Ready-made service for creating recovery points πŸ“‹ | Simple git analogπŸ’Ύ | Supports real and virtual file systemπŸ“

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages