Backup VDS incremental miaraka amin'ny tranokala amin'ny 1C-Bitrix ao amin'ny Yandex.Cloud

Nilaina ho ahy ny namerina ny tranokala amin'ny 2C-Bitrix: Site Management in-1 isan'andro (rakitra sy tahiry mysql) ary mitahiry ny tantaran'ny fiovana mandritra ny 90 andro.

Ny tranokala dia hita ao amin'ny VDS mihazakazaka CentOS 7 misy "1C-Bitrix: Web Environment" napetraka. Fanampin'izany, manaova kopia backup amin'ny firafitry ny OS.

fepetra takiana:

  • Frequency - in-2 isan'andro;
  • Mitazona kopia mandritra ny 90 andro farany;
  • Ny fahafahana mahazo rakitra tsirairay amin'ny daty voafaritra, raha ilaina;
  • Ny backup dia tsy maintsy tehirizina ao amin'ny foibe angona ankoatry ny VDS;
  • Ny fahafahana miditra amin'ny backup na aiza na aiza (server hafa, solosaina eo an-toerana, sns.).

Ny teboka manan-danja dia ny fahafahana mamorona backups miaraka amin'ny fanjifana kely indrindra amin'ny habaka fanampiny sy ny loharanon'ny rafitra.

Ity dia tsy momba ny snapshot amin'ny famerenana haingana ny rafitra manontolo, fa momba ny rakitra sy ny angon-drakitra ary ny tantaran'ny fiovana.

Loharano loharano:

  • VDS amin'ny virtoaly XEN;
  • OS CentOS 7;
  • 1C-Bitrix: Tontolo iainana amin'ny Internet;
  • Site mifototra amin'ny "1C-Bitrix: Site Management", dikan-teny mahazatra;
  • Ny haben'ny rakitra dia 50 GB ary hitombo;
  • Ny haben'ny tahiry dia 3 GB ary hitombo.

Backup mahazatra namboarina tao amin'ny 1C-Bitrix - nesorina avy hatrany. Mety ho an'ny tranokala kely ihany izy io, satria:

  • Manao dika mitovy amin'ny tranokala isaky ny tsirairay, ny dika tsirairay dia haka toerana betsaka toy ny fandraisako ny rakitra, raha ny ahy dia 50 GB.
  • Ny backup dia atao amin'ny PHP, izay tsy azo atao amin'ny habetsaky ny rakitra toy izany, dia hameno ny mpizara ary tsy hifarana mihitsy.
  • Ary mazava ho azy, tsy misy resaka momba ny 90 andro rehefa mitahiry kopia feno.

Ny vahaolana atolotry ny mpampiantrano dia kapila backup hita ao amin'ny foibe data mitovy amin'ny VDS, fa amin'ny mpizara hafa. Azonao atao ny miara-miasa amin'ny kapila amin'ny alΓ lan'ny FTP ary mampiasa ny soratanao manokana, na raha napetraka ao amin'ny VDS ny ISPManager, dia amin'ny alΓ lan'ny maody backup. Ity safidy ity dia tsy mety noho ny fampiasana ny foibe data mitovy.

Avy amin'ireo rehetra voalaza etsy ambony ireo, ny safidy tsara indrindra ho ahy dia ny backup incremental araka ny scenario manokana ao amin'ny Yandex.Cloud (Object Storage) na Amazon S3 (Amazon Simple Storage Service).

Mitaky:

  • fidirana faka amin'ny VDS;
  • fampiasa duplicity napetraka;
  • kaonty ao amin'ny Yandex.Cloud.

backup incremental - fomba iray izay tsy misy afa-tsy ny angona niova hatramin'ny backup farany no voatahiry.

hampiely lainga - fitaovana backup izay mampiasa algorithm rsync ary afaka miasa amin'ny Amazon S3.

Yandex.Cloud vs Amazon S3

Tsy misy fahasamihafana eo amin'ny Yandex.Cloud sy Amazon S3 amin'ity tranga ity ho ahy. Yandex dia manohana ny ampahany lehibe amin'ny Amazon S3 API, mba hahafahanao miara-miasa aminy amin'ny fampiasana ireo vahaolana azo ampiasaina amin'ny fiasana amin'ny S3. Raha ny amiko dia ity no utility duplicity.

Ny tombony lehibe amin'ny Yandex dia mety ho fandoavam-bola amin'ny roubles, raha misy angon-drakitra be dia be, dia tsy hisy rohy mankany amin'ny fampianarana. Eo amin'ny hafainganam-pandeha, ny foibe angona Eoropeana Amazon dia miasa mifanaraka amin'ny Rosiana ao amin'ny Yandex, ohatra, azonao atao ny mampiasa Frankfurt. Nampiasa Amazon S3 aho taloha ho an'ny asa mitovy amin'izany, ankehitriny dia nanapa-kevitra ny hanandrana Yandex aho.

Fametrahana Yandex.Cloud

1. Mila mamorona kaonty faktiora ao amin'ny Yandex.Cloud ianao. Mba hanaovana izany, mila miditra ao amin'ny Yandex.Cloud ianao amin'ny alΓ lan'ny kaontinao Yandex na mamorona kaonty vaovao.

2. Mamorona rahona.
Backup VDS incremental miaraka amin'ny tranokala amin'ny 1C-Bitrix ao amin'ny Yandex.Cloud

3. Ao amin'ny "Cloud" mamorona "Katalaogy".
Backup VDS incremental miaraka amin'ny tranokala amin'ny 1C-Bitrix ao amin'ny Yandex.Cloud

4. Ho an'ny "Catalogue" dia mamorona "kaonty serivisy".
Backup VDS incremental miaraka amin'ny tranokala amin'ny 1C-Bitrix ao amin'ny Yandex.Cloud

5. Ho an'ny "kaonty serivisy" dia mamorona fanalahidy.
Backup VDS incremental miaraka amin'ny tranokala amin'ny 1C-Bitrix ao amin'ny Yandex.Cloud

6. Tazony ny fanalahidy, mila azy ireo ianao amin'ny ho avy.
Backup VDS incremental miaraka amin'ny tranokala amin'ny 1C-Bitrix ao amin'ny Yandex.Cloud

7. Ho an'ny "Katalaogy" mamorona "Bucket", dia ho tafiditra ao ny rakitra.
Backup VDS incremental miaraka amin'ny tranokala amin'ny 1C-Bitrix ao amin'ny Yandex.Cloud

8. Manoro hevitra aho hametraka fetra ary fidio ny "Cold Storage".
Backup VDS incremental miaraka amin'ny tranokala amin'ny 1C-Bitrix ao amin'ny Yandex.Cloud

Mametraka backup voalahatra amin'ny mpizara

Ity torolΓ lana ity dia mandray ny fahaiza-mitantana fototra.

1. Apetaho amin'ny VDS ny utility duplicity

yum install duplicity

2. Mamorona lahatahiry ho an'ny mysql dumps, raha ny ahy dia /backup_db ao amin'ny root VDS

3. Mamorona lahatahiry ho an'ny script bash /backup_scripts ary ataovy ny script voalohany izay hamerina /backup_scripts/backup.sh

votoatin'ny script:

#!`which bash`


# /backup_scripts/backup.sh

# Π­Ρ‚ΠΎ условиС провСряСт Π½Π΅ ΠΈΠ΄Ρ‘Ρ‚ Π»ΠΈ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ процСсс Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования, Ссли ΠΈΠ΄Ρ‘Ρ‚, Ρ‚ΠΎ Π½Π° email отправляСтся сообщСниС ΠΎΠ± ошибкС (этот Π±Π»ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ)
if [ -f /home/backup_check.mark ];
then

DATE_TIME=`date +"%d.%m.%Y %T"`;

/usr/sbin/sendmail -t <<EOF
From:backup@$HOSTNAME
To:<Π’Π°Ρˆ EMAIL>
Subject:Error backup to YANDEX.CLOUD
Content-Type:text/plain; charset=utf-8
Error backup to YANDEX.CLOUD

$DATE_TIME
EOF

else

# Основной Π±Π»ΠΎΠΊ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
# Если Π½Π΅Ρ‚ ΠΎΡ‰ΠΈΠ±ΠΊΠΈ ставим ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈ запускаСм backup

echo '' > /home/backup_check.mark;


# УдаляСм Ρ„Π°ΠΉΠ»Ρ‹ с Π΄Π°ΠΌΠΏΠ°ΠΌΠΈ Π±Π°Π·Ρ‹ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ backup

/bin/rm -f /backup_db/*


# Π”Π΅Π»Π°Π΅ΠΌ Π΄Π°ΠΌΠΏ всСх mysql Π±Π°Π·, прСдполагаСтся Ρ‡Ρ‚ΠΎ доступ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² Ρ„Π°ΠΉΠ»Π΅ /root/.my.cnf

DATETIME=`date +%Y-%m-%d_%H-%M-%S`;

`which mysqldump` --quote-names --all-databases | `which gzip` > /backup_db/DB_$DATETIME.sql.gz


# ДобавляСм Π΄Π°Π½Π½Ρ‹Π΅ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π² ЯндСкс.

export PASSPHRASE=<ΠŸΡ€ΠΈΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π°Ρ€Ρ…ΠΈΠ²Π°>
export AWS_ACCESS_KEY_ID=<Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ»ΡŽΡ‡Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρƒ ЯндСкса>
export AWS_SECRET_ACCESS_KEY=<Π‘Π΅ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρƒ ЯндСкса>


# ЗапускаСм duplicity для рСзСрвирования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠ°ΠΏΠΎΠΊ Π½Π° сСрвСрС.
# Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ backup Ρ€Π°Π· Π² мСсяц ΠΈ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ мСсяца Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊ Π½Π΅ΠΌΡƒ
# -- exclude это ΠΏΠ°ΠΏΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, я ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽ всС ΠΏΠ°ΠΏΠΊΠΈ с кСшСм битрикса
# --include ΠΏΠ°ΠΏΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠΎΡ‘ΠΌ случаС это:
# - /backup_db
# - /home
# - /etc
# s3://storage.yandexcloud.net/backup , backup это имя созданного Π²Ρ‹ΡˆΠ΅ Π±Π°ΠΊΠ΅Ρ‚Π°

# ВСхничСская ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ значСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:
# Π”Π²Π΅ строки "--exclude='**'" ΠΈ "/" Π½ΡƒΠΆΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ --include ΠΈ --exclude для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ°ΠΏΠΎΠΊ. Π­Ρ‚ΠΈ Π΄Π²Π΅ строчки сначала Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π² бэкап вСсь сСрвСр "/", ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π΅Π³ΠΎ "--exclude='**'"
# --full-if-older-than='1M' - ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ копию ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ мСсяц
# --volsize='512' - ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² Π² бэкапС Π² ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°Ρ…
# --log-file='/var/log/duplicity.log' - ΠΊΡƒΠ΄Π° ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ Ρ„Π°ΠΉΠ»

`which duplicity` 
    --s3-use-ia --s3-european-buckets 
    --s3-use-new-style 
    --s3-use-multiprocessing 
    --s3-multipart-chunk-size='128' 
    --volsize='512' 
    --no-print-statistics 
    --verbosity=0 
    --full-if-older-than='1M' 
    --log-file='/var/log/duplicity.log' 
    --exclude='**/www/bitrix/backup/**' 
    --exclude='**/www/bitrix/cache/**' 
    --exclude='**/www/bitrix/cache_image/**' 
    --exclude='**/www/bitrix/managed_cache/**' 
    --exclude='**/www/bitrix/managed_flags/**' 
    --exclude='**/www/bitrix/stack_cache/**' 
    --exclude='**/www/bitrix/html_pages/*/**' 
    --exclude='**/www/bitrix/tmp/**' 
    --exclude='**/www/upload/tmp/**' 
    --exclude='**/www/upload/resize_cache/**' 
    --include='/backup_db' 
    --include='/home' 
    --include='/etc' 
    --exclude='**' 
    / 
    s3://storage.yandexcloud.net/backup



# Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½ΡƒΠΆΠ½Π° для чистки.
# Она оставляСт 3 послСдних ΠΏΠΎΠ»Π½Ρ‹Ρ… backup ΠΈ ассоциированных с Π½ΠΈΠΌΠΈ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… backup.
# Π’.ΠΎ. Ρƒ мСня ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ backup Π·Π° 3 мСсяца, Ρ‚.ΠΊ. пСрвая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ мСсяц Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ»Π½Ρ‹ΠΉ backup

`which duplicity` remove-all-but-n-full 3 --s3-use-ia --s3-european-buckets --s3-use-new-style --verbosity=0 --force s3://storage.yandexcloud.net/backup



unset PASSPHRASE
unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY

# УдаляСм ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΎΠ± ΠΈΠ΄ΡƒΡ‰Π΅ΠΌ backup

/bin/rm -f /home/backup_check.mark;

fi

4. Ampidiro voalohany ny script ary jereo ny valiny, tokony hiseho ao amin'ny Bucket ny rakitra.

`which bash` /backup_scripts/backup.sh

Backup VDS incremental miaraka amin'ny tranokala amin'ny 1C-Bitrix ao amin'ny Yandex.Cloud

5. Manampia script amin'ny cron ho an'ny mpampiasa root hovonoina in-2 isan'andro, na isaky ny ilainao.

10 4,16 * * * `which bash` /backup_scripts/backup.sh

Famerenana angona avy amin'ny Yandex.Cloud

1. Manaova lahatahiry famerenana / backup_restore

2. Manaova bash restore script /backup_scripts/restore.sh

Omeko ny ohatra nangatahana indrindra amin'ny famerenana rakitra manokana:

#!`which bash`

export PASSPHRASE=<ΠŸΠ°Ρ€ΠΎΠ»ΡŒ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π°Ρ€Ρ…ΠΈΠ²Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ бэкапС>
export AWS_ACCESS_KEY_ID=<Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ»ΡŽΡ‡Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρƒ ЯндСкса>
export AWS_SECRET_ACCESS_KEY=<Π‘Π΅ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρƒ ЯндСкса>

# 3 ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ статус backup
#`which duplicity` collection-status s3://storage.yandexcloud.net/backup

# Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ index.php ΠΈΠ· корня сайта
#`which duplicity` --file-to-restore='home/bitrix/www/index.php' s3://storage.yandexcloud.net/backup /backup_restore/index.php

# Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ index.php ΠΈΠ· корня сайта 3Ρ… Π΄Π½Π΅Π²Π½ΠΎΠΉ давности
#`which duplicity` --time='3D' --file-to-restore='home/bitrix/www/index.php' s3://storage.yandexcloud.net/backup /backup_restore/index.php

unset PASSPHRASE
unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY

3. Alefaso ny script ary miandry ny valiny.

`which bash` /backup_scripts/backup.sh

Ao amin'ny lahatahiry /backup_restore/ dia ho hitanao ny rakitra index.php izay nampidirina taloha tao amin'ny backup.

Afaka manao fanitsiana tsara kokoa ianao mba hifanaraka amin'ny filanao.

minus duplicity

Ny duplicity dia manana lesoka iray - tsy misy fomba hametrahana fetran'ny fampiasana fantsona. Amin'ny fantsona mahazatra dia tsy miteraka olana izany, fa miaraka amin'ny fantsona arovana DDoS miaraka amin'ny faktiora haingana isan'andro dia tiako ny hametraka fetra 1-2 megabits.

Ho fehin-kevitra

Ny backup amin'ny Yandex.Cloud na Amazon S3 dia manome dika tsy miankina amin'ny tranokala sy ny firafitry ny OS izay azo idirana amin'ny mpizara hafa na solosaina eo an-toerana. Mandritra izany fotoana izany dia tsy hita ao amin'ny tontonana fanaraha-maso fampiantranoana na ao amin'ny tontolon'ny admin Bitrix izany kopia izany, izay manome fiarovana fanampiny.

Amin'ny vokatra mampalahelo indrindra dia afaka manangana mpizara vaovao ianao ary mametraka ny tranokala amin'ny daty rehetra. Na dia ny fampiasa indrindra angatahana aza dia ny fahafahana miditra amin'ny rakitra amin'ny daty voafaritra.

Azonao atao ny mampiasa an'io teknika io miaraka amin'ireo mpizara VDS na voatokana sy tranokala amin'ny motera rehetra, fa tsy ny 1C-Bitrix ihany. Ny OS dia mety ho hafa noho ny CentOS, toy ny Ubuntu na Debian.

Source: www.habr.com

Add a comment