áá±áž áá¬á!
ááá±á· áá»áœááºá¯ááºááẠááá°áá®áá±á¬áá¯á¶á á¶áá»á¬ážááŒáá·áº Nextcloud ááá¯ááŸá±á¬ááºááŸá¯á០áá±áá¬ááŒá®ážáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºá¡áááºáá°ážááŒááºážá¡ááœáẠáá»áœááºá¯ááºááá¯á·áá¡ááœá±á·á¡ááŒá¯á¶á¡ááŒá±á¬ááºáž ááŒá±á¬ááŒááá¯áá«áááºá áá»áœááºá¯ááºááẠá¡áá¯ááºáá®á áá áºáá»á¬ážá ááœá²á·á ááºážááŸá¯áá¯á¶á á¶á á®áá¶ááá·áºááœá²ááŸá¯ááᯠáá¯ááºáá±á¬ááºááá·áº Molniya AK ááœáẠáááºáá±á¬ááºááŸá¯áá¬ááá áºáá¯á¡ááŒá Ạá¡áá¯ááºáá¯ááºáá«áááºá Nextcloud ááᯠáá±áá¬ááááºážáááºážáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯áá«áááºá ááœá²áá±ááœá²á·á ááºážáá¯á¶ááŸáá·áºá¡áá°á á¡áááºáááºááŸáá·áºá¡áá° áá«áááºáááºá
áááºáááºááŸá¯áá»á¬ážá á¡ááºá¹áá«áááºáá»á¬ážá០ááŒá áºáá±á«áºáá¬ááá·áº ááŒá¿áá¬áá»á¬ážááŸá¬ áá±áá¬áá»á¬ážá áœá¬ ááŸááá±ááŒááºáž ááŒá áºáááºá Nextcloud á០áá¶á·ááá¯ážáá±ážáá±á¬ áá¬ážááŸááºážááŒáá·áº áá¬ážááŸááºážááŒá±á¬ááºážááŒááºážá áááºáá±ááŒááºážá á¡ááŒá±á¬ááºážá¡áá¬ááá¯ááºáᬠá¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážááẠáááºáá°áá»á¬ážá áœá¬ááᯠáááºáá®ážáá±ážáá«áááºá
á á±á¬ááá¯áá»ážáá¬á
Nextcloud ááᯠá á®áá¶ááá·áºááœá²ááá·áºá¡áá«á áá±áá¬áááºááá¯ážááẠá¡ááá¯ážáááºáá±á¬ááŒá±á¬áá·áº áá¯ááºááŸááºáá¬ážááááºááŒá áºááŒá®áž áááá±á¬ááºáá±á¬á¡áááºáá°ážáá°ááŒááºážááᯠá á¯á ááºážáá¬ááœáẠááŒá¿áá¬áá±á«áºáá±á«ááºáá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááá±áá¬ááœáẠááá¯á·ááá¯áẠNextcloud á០áá®ážááŒá¬ážá ááºáá»á¬ážááœáẠá¡áááºáá°ážáá°ááŒááºážá¡ááœáẠááááºážáááºážááŒááºážá¡ááœáẠááœá±ážáá»ááºá áá¬áá»á¬ážááᯠáá±ážáá±á¬ááºáá¬ážáá«áááºá
áá±á¬ááºáááºáá»á¬ážá áœá¬ááŸáááŒá®áž áááºážááá¯á·á¡á¬ážáá¯á¶ážááẠááá°áá®áá±á¬ááœá²á·á ááºážáá¯á¶áá»á¬ážááŒáá·áºá áááºážááá¯á·á¡á¬ážáá¯á¶ážááẠáááºážááá¯á·áááá¯ááºááá¯ááºááá¯ááºáá»á¬ážááŸáá·áº áááºážááá¯á·áááá¯ááºááá¯ááºáááá±áááá¹ááá¬áá»á¬ážááŒáá·áº ááŸááá±ááŒáááºá á€áááºááŸá¬ áááºááá¯ááºáá áºáá¯áá¯á¶ážááᯠáááºážááá¯ááºááá·áºá¡áá« á á¶áááºážááá¬áá áºáá¯ááŒá áºááŒá®áž á¡áááºáá»á¬ážááᯠáááá°áá»á¬ážá០ááŒá¯áá¯ááºáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážááẠá¡áááºáááŒá±áá«á
á¡áááºáá¯á¶áž input data ááá¯ááŒáá·áºáá¡á±á¬ááºá áá»áœááºá¯ááºááá¯á· ááá¯á¡ááºáááº-
- node áá áºáᯠááá¯á·ááá¯áẠá¡áá»á¬ážá¡ááŒá¬ážá áááºááŸááºáá»ááºáá»á¬ážááœáẠáá»á²á·ááœááºááá¯ááºááŸá¯á ááŒá®ážáá¬ážáá±á¬ áááºáááºááŸá¯á¡ááœáẠáá»áœááºá¯ááºááá¯á·ááẠminio ááᯠááá¯ááŸá±á¬ááºááŸá¯á¡ááŒá Ạá¡áá¯á¶ážááŒá¯áá«áááºá
- á¡áááºááááºážáááºážááŸá¯áá»á¬áž áá¯ááºáá±á¬ááºáá¬ááœáẠááŒá¿áá¬áá»á¬ážá¡ááŒá±á¬ááºáž ááŸá¬ááœá±áá«á
- ááá·áºáá±á¬ááºáááºáá»á¬ážááŸáá·áº/ááá¯á·ááá¯áẠáá»áœááºá¯ááºááá¯á·ááŸáá·áºá¡áá° á¡áááºáá°ážáá°áá¬ážááẠááá¯á¡ááºáá«áááºá
- ááŒá¿áá¬ááœá±ááᯠááŒááºááŒááºáááºááẠááá¯ááºááœááºááŒá±ááŸááºážáá«á
- áá±á¬ááºáááºáá»á¬ážááŸáá·áº áááºáááºááŸá¯áá»á¬ážááẠáá áºáá¯ááŸáá·áºáá áºáᯠá¡ááœááºááœá¬ááŒá¬ážááẠ- áá°áá®ááŸá¯ááááá¯ááºáá«á
- ááŒááºáááºááá°ááŒááºážá¡ááŒááºááŸá¯ááºážááẠá¡ááŒá±á¡áá±ááŸá áºáá¯ááœáẠá¡áááºážáá¯á¶ážááŒá áºááá·áºáááº- á¡ááŒáá·áºá¡á ááŒááºáááºááá°ááŒááºáž (áá±ážá¡áá¹ááá¬ááº)á á¡ááŸá¬ážááŒá±á¬áá·áº áá»ááºááá¯ááºáá±á¬ ááá¯ááºááœá²áá áºáá¯á
- áá°ážáá°ááŒááºáž áá¯ááºáá±á¬ááºáá»áẠááá¯á¡ááºáá«áááºá
á¡áááºááááºážáááºážááŒááºážááá¯ááºáᬠááŒá¿áá¬ááá¯ááŒá±ááŸááºážáááºá áá»áœááºá¯ááºááá¯á·ááẠGitLab ááᯠááá·áºááœááºážáá²á·áááºá áá±á¬ááºáááºá¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááá¯ááºááœááºááŒá±ááŸááºážáá«á
áá¯ááºáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠááá¯áá²á·ááá¯á·áá±á¬ááŒá¿áá¬ááá¯ááŒá±ááŸááºážááẠááááá¯á¶ážááá¯ááºáá±á¬áºáááºážá áá»áœááºá¯ááºááá¯á·ááááºááœá±á·áá»áá±á¬ááŒáá¯ážá á¬ážá¡á¬ážáá¯ááºááŸá¯á¡ááœá±á·á¡ááŒá¯á¶ááẠá áááºáááºá á¬ážá áá¬áá±á¬ááºážááŒá®áž áááºážááá¯áá»áŸáá±áááºá¡ááá·áºááŒá áºáá±áááºáᯠáá»áœááºá¯ááºááá¯á·áááºááŒááºáá«áááºá
áá»áœááºá¯ááºááá¯á·ááá¯áá¹ááá®ááœáẠopen source áá°áá«áááŸááá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠopen source ááŒá±ááŸááºážáá»ááºááᯠááŸá¬ááœá±áá±áá«áááºá áá
áºááẠáá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·áááá¯ážáááºááŸá¯áá»á¬ážááᯠáá»áŸáá±ááŒá®áž áááºážááá¯á·ááᯠááá¯á·á
áºáááºáá«á á¥ááá¬á GitHub ááŸá¬ááŸááááºá
á¡áááºáááááá¬áá»á¬áž
á¡áááºáááºáá®ážááŸá¯áá°ážááºááᯠááœá±ážáá»ááºááŒááºážááŒáá·áº ááŒá±ááŸááºážáá»ááºáááºážáááºážáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· á áááºááŸá¬ááœá±áá²á·áááºá
áá¯á¶ááŸáẠtar + gzip ááẠáá±á¬ááºážá
áœá¬ á¡áá¯ááºááá¯ááºáá« - áá±áá¬ááᯠááœá¬ážáá±áá«áááºá ááá¯ážááŒáá·áºááŸá¯áá
áºáá¯ááœáẠá¡ááŸááºááááºááŒá±á¬ááºážáá²ááŸá¯á¡áááºážáááºáá«áááºáá±á·ááŸáááŒá®áž ááá¯ááºáá
áºáá¯áááºážááŸááá±áá¬á¡áá»á¬ážá
á¯ááᯠáááºáá«ááá²áá²áá¯ááºáá±á¬ááºáááºá
áá±á¬ááºáááºááŒá¿áá¬áá
áºáá¯ááŸáááẠ- ááŒáá·áºáá±áá±áá¬ááá¯ááŸá±á¬ááºááŸá¯á¡áááºáááºá áá»áœááºá¯ááºááá¯á·ááẠminio ááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž áááºážááá±áá¬ááẠá¡ááŒá±áá¶á¡á¬ážááŒáá·áº áááá¯á¡ááºáá±á¬á·áá«á ááá¯á·ááá¯áẠáááºááẠminio ááá¯ááºááá¯ááºááŸáá
áºááá·áº á¡áááºáá°ážáá°ááẠááá¯á¡ááºááẠ- áááºážááᯠáááºááŒá®áž ááá¯ááºá
áá
áºááŒá¬ážááŸá spacers á¡á¬ážáá¯á¶ážááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž á¡áá±ážááŒá®ážáá±á¬á¡áá»ááºááŸá¬ áá¯á¶ážááŸáá·áº áááºáá¬á¡áá»ááºá¡áááºá¡áá»áá¯á·ááᯠáá±á·ááœá¬ážááá¯ááºááá·áº á¡áá¹ááá¬ááºááŸááá«áááºá ááá¯á·ááá¯áẠáá¯ááºáá°ááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áá«á
áááºáá°ááœá¬ážááŒááºážááŒáá·áº á¡áááºáááááá¬áá»á¬ážááᯠopen source ááœáẠáááá¯ááºááẠ(Habre ááœáẠááŸááá²á·áááºá
á¡áááºááááºážáááºážááŸá¯áá»á¬ážááᯠá á®áá¶ááá·áºááœá²ááŒááºážá
Borg ááŸáá·áº Restic ááá¯á·ááẠáá±á¬ááºážááœááºáá±á¬áºáááºáž áá¯ááºáá¯ááºááŸá áºáá¯áá¯á¶ážááœáẠáááá¯áá»á¯ááºááá¯ááºááŸá¯ ááááºážáá»á¯ááºááŸá¯ ááá¹ááá¬áž áááŸááá«á á á®áá¶ááá·áºááœá²ááŸá¯ááŸáá·áº ááááºážáá»á¯ááºááŸá¯áááºááœááºáá»ááºá¡ááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºááŒááºážá¡áá«á¡ááẠáá»áœááºá¯ááºááá¯á·áá¡áá¯ááºáá»á¬ážááᯠá áááºáá°ážááááºááá¯ááºáá²á áá»áœááºá¯ááºááá¯á·ááẠáááºááœá±á·áá¯ááºáá±á¬ááºáá¬ážááŒá®ážááŒá áºáá±á¬ áááááá¬áá áºáá¯ááᯠááœá±ážáá»ááºáá²á·ááẠ- áááºážááẠáá°áááá»á¬ážáá±á¬ CI/CD - GitLab ááŒá áºáááºá
á¡áá¯ááºáá®áá¬ááŸá¬ á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá áºáááº- gitlab-runner ááᯠNextcloud áá±áá¬ááááºážáááºážááá·áº node áá áºáá¯á á®ááœáẠááá·áºááœááºážáá¬ážáááºá á¡ááŒá±ážááá¬ážááẠá¡áááºááááºážááŒááºážáá¯ááºáááºážá ááºááᯠá á±á¬áá·áºááŒáá·áºááá·áºá¡áá»áááºááá¬ážáá áºáá¯áá±á«áºááœáẠscript áá áºáá¯áá¯ááºáá±á¬ááºááŒá®áž Borg ááá¯á·ááá¯áẠRestic ááá¯á áááºáááºá
áá«ááá¯á· áá¬ááá²á·áá²á áá¯ááºáá±á¬ááºááŸá¯á០áá¯á¶á·ááŒááºáá»ááºá á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá¡áá±á«áº á¡áááºááŒá±á áœá¬ ááááºážáá»á¯ááºááá¯ááºááŸá¯á á¡ááŸá¬ážá¡ááœááºážááŸááá«á á¡áá±ážá áááºá¡áá»ááºáá»á¬ážá
áá®ááŸá¬
Gitlab API ááœáẠCI/CD timeout ááᯠááŒá±á¬ááºážáá²ááẠáááºážáááºážáááŸááá±ážáá±á¬áºáááºáž áááºážááẠáá±ážáááºáá«áááºá ááá¯ážááá¯á· ááá¯áááºááŒá±á¬ááááºá 1d
.
áá¶áá±á¬ááºážáá±á¬ááºáá áœá¬á GitLab ááẠcommit áá áºáá¯á¡ááá¬ááá á¡áá»áááºááá¬ážáá áºáá¯á¡ááᬠá áááºááá¯ááºáááºá áááºážááẠáá»áœááºá¯ááºááá¯á·ááá¯á¡ááºáá±á¬á¡áá¬ááŒá áºáááºá
á¡áᯠwrapper script á¡ááŒá±á¬ááºážá
á€áá¬ááºááœáŸááºážá¡ááœáẠá¡á±á¬ááºáá«á¡ááŒá±á¡áá±áá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· áááºááŸááºáááº-
- áááºážááᯠá¡ááŒá±ážááá¬ážááŸáá·áº áááºááŒáá·áº ááŸá áºáá»áá¯ážáá¯á¶áž áá°áá®áá±á¬ áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááŒáá·áº ááœááºááá¯ážááºá០á áááºááá·áºáááºá
- error handlers ááŸáááááº-
- áá¯ááºááŒááºáá±ážáááºá
- ááŸááºáááºážááŸá á á¬ááŒá±á¬ááºážáá áºáá¯ááᯠááŸá¬ááœá±áá«á á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·á¡ááœááºá á¡ááŸá¬ážáá áºáá¯ááẠáááá¯ááááºááẠáá±á á±ááá¯ááºáááºáᯠááá°áááá·áº áááºáá±á·áá»áºáá áºáᯠááŒá áºááá¯ááºáááºá
- áá¯ááºáá±á¬ááºáá±á áẠá¡áá»áááºáá¯ááºááœá¬ážáááºá áŠážáá±á¬ááºáá»áááºááẠáá»áá¯ážááŒá±á¬ááºážáá®áá»á±á¬áºááŸá¯ááŸáááááºá
- á¡ááœááºá¡áá±ážá áááºááŸááºáááºážáá áºáᯠááá¯á¡ááºáá«áááºá áá«áá±ááá·áº error áá áºáá¯ááŸáááá¯á·áá¬á
- áá áááºáá® á ááºážáááºááŸá¯áá»á¬ážá áœá¬ááá¯áááºáž ááŒá¯áá¯ááºáá²á·áááºá
- áá¶á·ááá¯ážááŸá¯áá¯ááºáááºážá ááºá¡ááœááºáž á¡áá¯á¶ážáááºááŒá±á¬ááºáž ááœá±á·ááŸááááá·áº á¡áááºááŒá±á á±ááẠáá±á¬áááºá áºá¡áá±ážá á¬ážáá»á¬áž-
- á¡á ááŸáá·áºá¡áá¯á¶ážááᯠlocal machine á syslog ááœáẠááŸááºáááºážáááºáá¬ážáááºá áááºážááẠá áá áºá¡ááŸá¬ážá¡ááœááºážáá»á¬ážááŸáá·áº á¡áááºááááºážááŒááºážáá¯ááºáááºážááᯠáá»áááºáááºááẠáá°áá®áá±ážáááºá
- á¡ááŸá¬ážá¡ááœááºážááŸááºáááºážá áá áºá áááºáá áºááá¯ááºáž ááŸááá«áá ááẠstdout ááá¯á· output ááŒá áºááŒá®ážá ááŸááºáááºážáá áºáá¯áá¯á¶ážááᯠáá®ážááŒá¬ážááá¯ááºáá áºáá¯ááá¯á· áá±ážáá¬ážáááºá CI ááᯠáá»ááºáá»ááºážááŒáá·áºááŸá¯ááŒá®áž á¡áá±ážá¡ááœá²ááŒá áºáá»áŸáẠá¡ááŸá¬ážá¡ááœááºážááᯠá¡áá²ááŒááºááẠá¡áááºááŒá±áááºá
- á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážáá¯ááºáá»á¬ážá
ááŸááºáááºážá¡ááŒáá·áºá¡á á¯á¶ááᯠGitLab ááœáẠááŸá±ážáá±á¬ááºážáá á¹á ááºážáá áºáá¯á¡ááŒá Ạááááºážáááºážáá¬ážááŒá®ážá á¡ááŸá¬ážá¡ááœááºážáááŸááá«á ááŸááºáááºážááᯠáá»ááºáá áºáááºááŒá áºáááºá áá»áœááºáá±á¬áºááá¯á· áá¬ááºááœáŸááºážááᯠbash áá²á·áá±ážáááºá
open source ááŸáá·áº áááºáááºáá±á¬ áááºááá·áº á¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážááŸáá·áº ááŸááºáá»ááºáá»á¬ážáááᯠááá·áºááœááºážá ááºážá á¬ážááẠáá»áœááºá¯ááºááá¯á· áááºážááŒá±á¬ááºáááá«ááẠ- ááŒáá¯ááá¯áá«áááºá
áááºááá¯á€áá¯ááºáááºážááá¯áááº
Bash executor áá«áá±á¬ á¡ááŒá±ážááá¬ážááᯠá¡áááºáá¯á¶ááœáẠá áááºáááºá á¡á á®á¡á ááºááœá²áá°á¡á á¡áá¯áẠCI/CD ááᯠá¡áá°ážá¡ááŸáá·áºáá»ááŒáá·áº á áááºáááºá á¡ááŒá±ážááá¬ážááẠááá¯áá²á·ááá¯á·áá±á¬áá¯ááºáá±á¬ááºá áá¬áá»á¬ážá¡ááœáẠuniversal wrapper script ááá¯ááœáá·áºáááºá áááºážááẠá¡áááºááá¯ááŸá±á¬ááºááŸá¯áááá¬ážáááºááŸá¯á mount point ááŸáá·áº áá»áœááºá¯ááºááá¯á·ááá¯áá»ááºááá»áŸá¡á¬ážáá¯á¶ážááᯠá á áºáá±ážááŒá®áž á¡áá±á¬ááºážááᯠáááá¹áá°áá°ážáᬠááá·áºááŸááºážá á±áááºá ááŒá®ážááœá¬ážáá±á¬ áááá¹áá°ááᯠS3 ááá¯á· áá±ážááá¯á·áááºá
áá»áœááºá¯ááºááá¯á·ááẠá€á¡á á®á¡á ááºá¡á áá¯ááºáá±á¬ááºááẠ- áááºážááẠááŒááºá AWS áá¶á·ááá¯ážáá±ážáá° ááá¯á·ááá¯áẠáá¯ááŸá¬ážááŸáá·áº áá®áá»áŸááẠ(áááºážááẠááá¯ááá¯ááŒááºáááºááŒá®áž áá±áá¬ááẠáá¯ááŸá¬ážáááºááá±ážááŸááºážá០áááœááºááœá¬áá«)á ááá¯á·ááá¯áẠá€áááºááœááºáá»ááºáá»á¬ážá¡ááœáẠáá°áááá¯ááºááœáẠclient á¡ááœáẠáá®ážááŒá¬áž minio á¡á á¯á¡áá±ážáá áºáá¯ááᯠáá»áœááºá¯ááºááá¯á· ááá·áºááœááºážáá«á áá±á¬ááºáááºá áá±áá¬ááᯠáááºážááá¯á·á áá¬ážáá áºááᯠáá¯á¶ážáááá¬ážáá²á·á á±ááá¯ááá·áºá¡áá« áá¯á¶ááŒá¯á¶áá±ážá¡ááŒá±á¬ááºážááŒáá»ááºááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠáá¯ááºáá±á¬ááºáá±á·ááŸááááºá
ssh ááŸáá áºááá·áº á¡áááºáá°ážáá±ážááá¯á·ááŒááºážá á¡ááºá¹áá«áááºááᯠáá»áœááºá¯ááºááá¯á· á¡áá¯á¶ážáááŒá¯áá²á·áá«á áááºážááẠáá¯á¶ááŒá¯á¶áá±ážááᯠááá·áºáááœááºáá² S3 áááºáá±á¬ááºááŸá¯áá±ážáá°á ááœááºáááºá áœááºážáááºáá»á¬ážááẠáá»áœááºá¯ááºááá¯á·á ssh á ááºáá áºáá¯ááẠáá»á¬ážá áœá¬ááŒáá·áºáá¬ážáááºá
áááºááá±ááá¶á
ááºááᯠáááºáá¬áá
áºáŠážá០áá¬ááœááºáááºá¡ááœááºá áá°ááẠS3 ááœáẠáá±áá¬áá»á¬ážááᯠáá»ááºááá¯ááºáá±á¬ááŒá±á¬áá·áºá áááºááẠáá¬ážááŸááºážááœáá·áºááŒááºážááᯠááœáá·áºááá«áááºá
á¡áááºááááºážááŒááºážááẠá¡áááºááᯠá¡ááŒá²áááºáž á
á¬ááŸááºáá±ážáááºá
Borg ááœáẠáá¯ááºááŸááºáá¬ážáá±á¬ áá¯ááºáá
áºáᯠááŸááááºá none
ááá¯á·áá±á¬áº áááºážááá¯ááœáá·áºááẠáá»áœááºá¯ááºááá¯á· ááŒááºážááŒááºážáááºááẠááá±á¬ááºáá¶áá«á á€áá¯ááºááœááºá áá¯ááºááŸááºááŒááºáž áááŸááá¯á¶áá¬ááá áá±ážáá¬ážááá·áºá¡áá¬áá»á¬ážá checksum ááᯠááœááºáá»ááºáááºááá¯ááºáá«á ááá¯ááá¯áááºááŸá¬ á¡ááœáŸááºážááááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááá¬ááááᯠááœááºááá¯ááºááᬠá
á
áºáá±ážááá¯ááºáá«áááºá
áá®ážááŒá¬ážá¡áá»áááºááá¬ážááœá²áá°ááẠá¡áááºáá»á¬ážááᯠá¡ááœáŸááºážáá»á¬ážááŸáá·áº á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážá ááá¯ááºáá¬ááŸá¯á¡ááœáẠá á áºáá±ážáááºá á á áºáá±ážááŸá¯ááẠááŸá±ážááœá±ážááŒá®áž ááŸááºáá±á¬ááŒá±á¬áá·áº áááºážááᯠáá áºááá áºááŒááẠáá®ážááŒá¬ážá á® áá¯ááºáá±á¬ááºáá«áááºá áááºáá±á«ááºážáá»á¬ážá áœá¬ ááŒá¬ááá¯ááºáááºá
áá¯ááŸá¬ážááᯠReadme
á¡ááŒá±áá¶áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááá¯
prepare
áá±á·áá»áá·áºáá±ážtestcheck
á¡áááºááá·áºá á áºáá±ážááŸá¯maincommand
á¡áá¬áá¶á¡ááœá²á·forcepostscript
á¡áá¯á¶ážááœáẠááá¯á·ááá¯áẠá¡ááŸá¬ážá¡ááœááºážááŒáá·áº áá¯ááºáá±á¬ááºááá·áº áá¯ááºáá±á¬ááºáá»ááºáá áºáá¯á partition ááᯠunmount áá¯ááºáááºáá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯áááºá
áááºáá±á¬ááºááŸá¯áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬áž
cleanup
áá»áœááºá¯ááºááá¯á·ááẠá¡ááŸá¬ážáá»á¬ážááᯠááŸááºáááºážáááºááẠááá¯á·ááá¯áẠááŸááºáááºážááá¯ááºááᯠáá»ááºáá áºáááºáchecklog
á¡ááŸá¬ážáá áºáá¯ááŸáá·áº ááá¯ááºážáá áºáá¯áá±á«áºáá±á«ááºááŸá¯á¡ááœáẠááŸááºáááºážááᯠááá¯ááºážááŒá¬ážáá«áret
ááœááºáá±á«ááºááá¯ááºááœááºáá°áchecktimeout
á¡áá»áááºááœááºá á áºáá±ážáá«á
áááºáááºážáá»ááº
VERBOSE=1
áá»áœááºá¯ááºááá¯á·ááẠáááºáá¬ážááŒááºáá±á«áºááœáẠá¡ááŸá¬ážáá»á¬ážááᯠáá»ááºáá»ááºážááŒáááẠ(stdout)áSAVELOGSONSUCCES=1
á¡á±á¬ááºááŒááºááŸá¯ááŸááºááá¯ááºááᯠááááºážáááºážáá«áINIT_REPO_IF_NOT_EXIST=1
áááŸááá»áŸáẠááá¯ááŸá±á¬ááºáááºážáá áºáᯠáááºáá®ážáá«á áá°áááºážá¡ááá¯ááºáž ááááºáá¬ážáááºáTIMEOUT
áááºááá¯ááºáá±á¬ááºáá»ááºá¡ááœáẠá¡áá»á¬ážáá¯á¶ážá¡áá»áááºá á¡áá¯á¶ážááœáẠ'm'á 'h' ááá¯á·ááá¯áẠ'd' á¡ááŒá ẠáááºááŸááºááá¯ááºáááºá
áá±á¬áºáá®á¡áá±á¬ááºážáá»á¬ážá¡ááœáẠááá¯ááŸá±á¬ááºááŸá¯áá¯ááºá áá°áááºáž-
KEEP_DAILY=7
KEEP_WEEKLY=4
KEEP_MONTHLY=6
áá¬ááºááœáŸááºážá¡ááœááºážááŸá ááááºážááŸááºáá»á¬áž
ERROR_STRING
â á¡ááŸá¬ážá¡ááœáẠcheck in log á¡ááœáẠá á¬áááºážáEXTRACT_ERROR_STRING
â á¡ááŸá¬ážááŸááá»áŸáẠstring ááá¯ááŒáááẠá áá¬ážáááºáKILL_TIMEOUT_SIGNAL
- á¡áá»áááºááœááºáá»áŸáẠáááºááẠá¡áá»ááºááŒááŒááºážáTAIL
â á ááááºáá±á«áºááœáẠá¡ááŸá¬ážáá»á¬ážáá«áá±á¬ á á¬ááŒá±á¬ááºážá¡áá±á¡ááœáẠáááºáá»áŸááŸááááºáCOLORMSG
â áááºáá±á·ááºá»áá¡áá±á¬áẠ(áá°áá¡áá«áá±á¬ááº)á
wordpress áá¯áá±á«áºáá±á¬ á¡ááá¯áá« script ááẠá¡ááŒá±á¡áá±ááá¯ááºáá¬á¡áááºáá áºáá¯áá«ááŸáááŒá®áž áááºážáááŸáá·áºááœááºááŸá¬ mysql áá±áá¬áá±á·á áºááá¯áááºáž back up ááŒá¯áá¯ááºááŒááºážááŒá áºáááºá ááá¯ááá¯áááºááŸá¬ áááºááẠáá±áá¬áá±á·á áºááᯠáááá¹áá°áá°ážáá¬ážááá¯ááºááá·áº single-node Nexcloud áááºáááºááŸá¯áá»á¬ážá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá á¡áááºááŒá±ááŸá¯ááŸá¬ á¡áá¬á¡á¬ážáá¯á¶ážááẠáá áºáá±áá¬áááºážááœááºáá¬áááá² áá±áá¬áá±á·á áºá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááẠá¡áá»áááºááœá¬ááŒá¬ážááŸá¯ á¡áááºážáááºáá¬ááŒá áºáá±á¬ááŒá±á¬áá·áº ááá¯ááºáá»á¬ážá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááŸáá·áº áá®ážá ááºáá«áááºá
Restic ááŸáá·áº Borg
Borg ááŸáá·áº Restic á¡ááŒá¬áž ááŸáá¯ááºážááŸááºááŸá¯áá»á¬ážáááºáž ááŸááá«áááºá
áá±á¬áºááŒáá¬ážááŒá®ážááŒá áºááá·áºá¡áá¬áá»á¬ážá¡ááŒáẠáá»áœááºá¯ááºááá¯á·áááœá±ážáá»ááºááŸá¯á á¶ááŸá¯ááºážáá»á¬áž (áááºáá°ááŒááºážá á¡ááŒááºááŒááºáááºááá°ááŒááºáž á áááº)á
- áááŒá®ážáá¯á¶ážáá±ážáá²á· á¡áá¯ááºááœá±ááᯠáá¯áá¶áááºá á¡ááŸááº-á áááºááẠá á áºáá±ážáááºá
- áá áºááºáá±á«áºááœáẠá¡ááœááºá¡á á¬ážá
- á¡áááºážá¡ááŒá áºáá»á¬áž (CPUá ááŸááºáá¬ááº) á¡ááœáẠááá¯á¡ááºáá»ááºá
- ááááºážáááºážáá¬ážáá±á¬ blobs á¡ááœááºá¡á á¬ážá
- S3 ááŸáá·áºá¡áá¯ááºáá¯ááºáááºá
- ááá¬ááá á áºáá±ážáá«á
á
ááºážáááºáááºá¡ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá±áá¬á¡á
á
áºá¡ááŸááºáá
áºáá¯ááŸáá·áº á
á¯á
á¯áá±á«ááºážá¡ááœááºá¡á
á¬áž 1,6 TB ááᯠáá°áá±á¬ááºáá²á·áááºá
á¡ááŒá±á¡áá±áá»á¬ážá
Borg ááẠS3 ááŸáá·áº ááá¯ááºááá¯ááºá¡áá¯ááºáá¯ááºáá¯á¶ááᯠááááá«á ááŸáá·áº áá»áœááºá¯ááºááá¯á·ááẠáá
áºááᯠáá»á°ážá
áºáá
áºáá¯á¡ááŒá
Ạáááºáááºáá¬ážáááºá
Goofys ááẠá¡ááœááºáá»ááºááŒááºááŒá®áž áá±á¬ááºážááœááºá
áœá¬ á¡áá¯ááºáá¯ááºáá«áááºá
ááœááºáááºáááœáŸááºážááá¯ážááŸá¯ááᯠáá»áŸá±á¬á·áá»áááºá áá»áœááºá¯ááºááá¯á·ááẠáá±áááœááºážáááºáá±á¬ááºááŸá¯áá±ážáá° - Yandex Cloud ááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºá
ááŸáá¯ááºážááŸááºá ááºážáááºááŸá¯ááááºáá»á¬ážá
- Kill -9 ááᯠáááºáá¶ááŒááºáááºá áááºááŒááºážááŒáá·áº ááŸá áºáŠážá áá¯á¶áž á¡á±á¬ááºááŒááºáá²á·áááºá
- áá áºááºáá±á«áºááœáẠá¡ááœááºá¡á á¬ážá Borg ááᯠáá»á¯á¶á·ááá¯ááºáá±á¬ááŒá±á¬áá·áº ááááºáá»á¬ážááẠáá»áŸá±á¬áºááá·áºáá¬ážááá·áºá¡ááá¯ááºážááŒá áºáááºá
Backuper
á¡ááœááº
Borg
562Gb
á¡áá¬ážáá°
628Gb
- CPU á¡á¬ážááŒáá·áº
Borg ááá¯ááºááá¯ááºá áá¯á¶áá±áá»á¯á¶á·ááŸá¯ááŒáá·áº á¡áááºážáááºá á¬ážáá¯á¶ážáá±á¬áºáááºáž áááºážááᯠáááºáá±á¬ááŒááºážáá¯ááºáááºážá ááºááŸáá·áºá¡áá° á¡áá²ááŒááºááááºááŒá áºáááºá á á¯á á¯áá±á«ááºážá áááºážááá¯á·ááẠáá°áá®áá±á¬á ááºážáááºááŸá¯ virtual machine ááœáẠ1,2 cores ááá·áºááᯠááŸáá¯ááºážááŸááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá - áá¬ááºá Restic ááẠááá·áºááŸááºážááŒá±á¡á¬ážááŒáá·áº 0,5GB ááŒá áºááŒá®áž Borg ááẠááá·áºááŸááºážááŒá±á¡á¬ážááŒáá·áº 200MB ááŒá áºáááºá áá«áá±ááá·áº áá«á system file cache áá²á· ááŸááºááẠáá¬á០á¡áá±ážáááŒá®ážáá«áá°ážá áá«ááŒá±á¬áá·áº Memory áá»á¬ážáá»á¬ážááœá²áá¬ážááá¯á· á¡ááŒá¶ááŒá¯ááá¯áá«áááºá
- blob á¡ááœááºá¡á á¬áž ááœá¬ááŒá¬ážáá»ááºááŸá¬ áááááá¬áá¬áááºá
Backuper
á¡ááœááº
Borg
500MB áá±á¬ááºááŸááááºá
á¡áá¬ážáá°
5MB áá±á¬ááºááŸááááºá
- Restic á S3 á¡ááœá±á·á¡ááŒá¯á¶ááẠáá±á¬ááºážááœááºáááºá áááºááŸáºááᯠáá¯á¶ážáááŒááºáááºáááºááŸááºááẠBackup ááŒá®ážááœá¬ážáá±á¬á¡áá«ááœáẠBorg ááŸáá·áºá¡áá¯ááºáá¯ááºááŒááºážá áááºááá·áºáá±ážááœááºážáá»áŸááá±ážáá² áááºááŸáºááᯠáá¯á¶ážáááŒááºáááºáááºááŸááºááẠá¡ááŒá¶ááŒá¯áá¬ážáááºá S3 ááá°ážááŒá¬ážáá»ááºááŸá¬ á á¯ááºááá¬ážáá±á¬á¡áá¯á¶ážáá»á¬ážááᯠáá¯á¶ážáá²ááá¯á·áááºáá±á¬á·ááŸáááá¯á·ááá¯ááºáá²á ááá¯ááá¯áááºááŸá¬ áá±áá¬áááŒáá·áºáá á¯á¶ááŸá¯ááŸá¬ ááŒá®ážááŒá®ážáá¬ážáá¬ážáá»ááºá á®ážááŸá¯ááᯠááŒá áºá á±áááºá
- ááá¬ááá
á
áºáá±ážááŒááºážááẠá¡ááŸá¯ááŸá
áºáá¯áá¯á¶ážááœáẠáá±á¬ááºážááœááºá
áœá¬á¡áá¯ááºáá¯ááºáá±á¬áºáááºáž ááŒááºááŸá¯ááºážááŸá¬ áááááá¬áá¬ááœá¬ááŒá¬ážáá«áááºá
á¡ááŒááẠ3,5 áá¬áá®.
100GB SSD ááá¯áẠcache áá«ááŸááá±á¬ Borg - 5 áá¬áá®.áá±áá¬ááẠá ááºááœááºážáá áºááºáá±á«áºááœáẠááŸááá±áá«á á¡áá®ážá ááºáá¯á¶áž áá°áá®áá±á¬ ááŒááºááŸá¯ááºážááááºá
Borg ááẠcache ááá«áá² S3 ááŸááá¯ááºááá¯ááºáááºáááºá 33 áá¬áá®. ááŸááºáá»á¬ážááŸáááºá
á¡áááá¡áá»ááºááŸá¬ Borg ááẠáá»á¯á¶á·ááá¯ááºááŒá®áž ááá¯ááŒá®ážáá±á¬ blobs áá»á¬ážáá«ááŸáááẠ- S3 ááœáẠááá¯ááŸá±á¬ááºááŸá¯ááŸáá·áº GET/PUT áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠá á»á±ážáááºáá¬á á±áááºá ááá¯á·áá±á¬áº áááºážááẠááá¯ááá¯ááŸá¯ááºááœá±ážááŒá®áž ááŸá±ážááœá±ážáá±á¬ á¡áááºááŒá¯ááŸá¯áá¯ááºáá»á ááááºááŒáá·áº áá¬áá«áááºá ááŒááºáááºááá°ááá·áº á¡ááŸáááºááŸáá·áº áááºáááºá áá»áœááºá¯ááºááá¯á· áááááá¬ážáááá²á·áá«á Restic ááẠáá±á¬ááºáááºááœá²á¡áááºáá»á¬áž (áááááŒá®ážáá±á¬ááº) á¡áááºážáááºááá¯ááŒá¬áá±á¬áºáááºáž áááá¬á áœá¬áááŸááá«á
áá±á¬ááºáá¯á¶ážááœá±ážáá»ááºááŸá¯ááœáẠá¡áááºážáá¯á¶ážá¡áá»ááºááŸá¬ áá°á·á¡ááœá²á·á¡á ááºážá á¡ááœááºá¡á á¬ážááŒá áºáááºá
ááŒá®ážáá±á¬á· áá»áœááºáá±á¬áºááá¯á· borg ááᯠááœá±ážááá¯ááºáááºá
Compression á¡ááŒá±á¬ááºáž á áá¬ážá¡áááºážáááº
Borg ááœáẠáááºážááááºáááºááá¯ááº- zstd ááœáẠá¡ááœááºáá±á¬ááºážááœááºáá±á¬ compression algorithm á¡áá áºáá áºáá¯ááŸááááºá ááááááºááŸá¯á¡áááºá¡ááœá±ážááẠgzip áááºáááá¯ážáá±á¬áºáááºáž á¡ááœááºááŒááºáááºáááºá ááŸáá·áº default lz4 ááŸáá·áº á¡ááŒááºááŸá¯ááºážááŒáá·áº ááŸáá¯ááºážááŸááºááá¯ááºáááºá
á¥ááá¬á¡á¬ážááŒáá·áºá MySQL database dump ááẠáá°áá®áá±á¬á¡ááŒááºááŸá¯ááºážááŒáá·áº lz4 ááẠááŸá áºáááá¯áá±á¬ááºážáááºá ááá¯á·áá±á¬áºáááºážá áá±áá¬á¡á á áºá¡ááŸááºááŸáá·áº á¡ááœá±á·á¡ááŒá¯á¶ááẠNextcloud node á compression á¡áá»áá¯ážááœáẠá¡áááºážáááºáá¬ááœá¬ááŒá¬ážááŒá±á¬ááºáž ááŒááááºá
Borg ááœáẠáá±á¬áááºá
áºáá»á¯á¶á·áá¯ááºáá
áºáá¯ááŸáááẠ- á¡áááºá ááá¯ááºááœáẠá¡ááºáááá¯áá® ááŒáá·áºáá¬ážáá«áá ááŒááºááŸá¯ááºážááá¯ááá¯ážááŒáá·áºá
á±ááá·áº ááááááºááŸá¯ááᯠáá¯á¶ážáá¡áá¯á¶ážááŒá¯áááºááá¯ááºáá«á áááºáá®ážááá·áºá¡áá« ááœá±ážáá»ááºááŸá¯ááŒáá·áº ááœáá·áºáá¬ážáááºá
-C auto,zstd
zstd algorithm á¡ááœááº
áá«ááŒá±á¬áá·áº áá® option áá²á· default compression áá²á· ááŸáá¯ááºážááŸááºááẠáá»áœááºáá±á¬áºááá¯á· ááá²á·áá«áááºá
560Gb ááŸáá·áº 562Gb á¡áá®ážáá®ážááŸááááºá á¡áááºáá±á¬áºááŒáá« á¥ááá¬á០áá±áá¬áá»á¬ážááᯠáá»á¯á¶á·ááŒááºážáááŒá¯áá² ááááºááẠ628Gb ááŒá
áºáááºá 2GB ááœá¬ááŒá¬ážáá»ááºá ááááºááẠáá»áœááºá¯ááºááá¯á·ááᯠá¡áááºážááẠá¡á¶á·á¡á¬ážááá·áºá
á±áá±á¬áºáááºáž áááºážááᯠááœá±ážáá»ááºáááºáᯠáá»áœááºá¯ááºááá¯á· ááœá±ážáááºáá²á·áááºá auto,zstd
.
á¡áááºá áá á áºááŒááºážáááºážáááºáž
á¡á á®á¡á ááºááœá²áá°á¡áá virtual machine ááᯠáá¶á·ááá¯ážáá±ážáá°á០ááá¯á·ááá¯áẠclient áá¶á០ááá¯ááºááá¯ááºááœáŸáá·áºáááºáá¬ážááŒá®áž network load ááᯠáá»á¬ážá áœá¬áá»áŸá±á¬á·áá»áá±ážáááºá á¡áááºážáá¯á¶ážáá±á¬á· áááºááá¯ááºááá¯áẠááœá±ážááŒá°ááŒá®áž áá¬ááºááŒá±á¬ááᯠáá±á¬ááºážááŸááºáá¬ááẠááá¯á á»á±ážáááºáá¬áá«áááºá
goofys --cache "--free:5%:/mnt/cache" -o allow_other --endpoint https://storage.yandexcloud.net --file-mode=0666 --dir-mode=0777 xxxxxxx.com /mnt/goofys
export BORG_PASSCOMMAND="cat /home/borg/.borg-passphrase"
borg list /mnt/goofys/borg1/
borg check --debug -p --verify-data /mnt/goofys/borg1/
áá°áá®áá±á¬á¡á á®á¡á á¥áºááá¯á¡áá¯á¶ážááŒá¯á áá»áœááºá¯ááºááá¯á·ááẠááá¯ááºáá»á¬ážááᯠantivirus (á¡ááŸááºááááºááŒá®ážáá±á¬ááº) ááŒáá·áºá á áºáá±ážáá«á áá±á¬ááºáá¯á¶ážááœááºá á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠááá°áá®áá±á¬ á¡áá¬áá»á¬ážááᯠNextcloud ááá¯á· á¡ááºáá¯ááºáá¯ááºááŒááŒá®áž áá°ááá¯ááºážááœáẠááá¯ááºážáááºá áºááá¯áž áááŸááá«á áá±á¬ááºážááá·áºá¡áá»áááºááœáẠá á áºáá±ážááŸá¯ááŒá¯áá¯ááºááŒááºážááẠá¡áá»áááºáá»á¬ážá áœá¬áá°áááŒá®áž áá¯ááºáááºážááᯠá¡ááŸá±á¬áá·áºá¡ááŸááºááŒá áºá á±áá«áááºá
ááá°áá®áá±á¬ tag áá»á¬ážááŒáá·áº ááá°áá®áá±á¬ node áá»á¬ážáá±á«áºááœáẠá¡ááŒá±ážááá¬ážáá»á¬ážá á¡ááá¯ááºážá¡áá¬áá
áºáá¯á¡áá á¡á±á¬ááºááŒááºáááºá
áá»áœááºá¯ááºááá¯á·áá
á±á¬áá·áºááŒáá·áºá
á
áºáá±ážááŸá¯ááẠáááºážááá¯ážáá
áºáá¯ááœáẠGitLab API ááŸáá
áºááá·áº á¡áááºáá°ážáá°ááŸá¯á¡ááŒá±á¡áá±áá»á¬ážááᯠá
á¯áá±á¬ááºážáá±ážáááºá ááá¯á¡ááºáá«á ááŒá¿áá¬áá»á¬ážááᯠá¡ááœááºááá°áááááŒá¯ááááŒá®áž áá±ááá¹ááá¡ááŒá
áºááá¯á· á¡ááœááºááá°ááŒá±á¬ááºážááá¯ááºáááºá
áá±á¬ááºáá»ááº
ááááºá¡áá±ááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááááá¹áá°áá°ážáá°ááŸá¯áá»á¬ážááᯠááá¬ážáááºááŒá±á¬ááºážá áááºážááá¯á·ááŸáá·áº ááŒá¯á¶ááœá±á·áááá·áº ááŒá¿áá¬áá»á¬ážááẠá¡áá»áááºá¡áááºážáááºáá°áᬠáá¬áááºá á®áá¶ááá·áºááœá²áá°á¡ááá·áºááœáẠááŒá±ááŸááºážááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·áá±áá»á¬áááá«áááºá Backup áá»á¬ážááẠtar.gz ááá¯á·ááá¯áẠBacula ááŸáá·áº ááŸáá¯ááºážááŸááºáá«á áá±áá¬á¡áááºážáááºáᬠáá°áááºá
source: www.habr.com