Inowedzera VDS backup ine saiti pa1C-Bitrix muYandex.Cloud

Ini ndaifanira kuita backups yesaiti pa "2C-Bitrix: Site Management" (mafaira uye mysql database) kaviri pazuva uye kuchengeta nhoroondo yekuchinja kwemazuva makumi mapfumbamwe.

Iyo saiti iri paVDS inomhanya CentOS 7 OS ine 1C-Bitrix: Webhu Nzvimbo yakaiswa. Uyezve, ita kopi yekuchengetedza yezvirongwa zveOS yako.

Zvinotarisirwa:

  • Frequency - 2 kanomwe pazuva;
  • Chengetedza makopi kwemazuva makumi mapfumbamwe apfuura;
  • Iko kugona kuwana mafaera ega kune rimwe zuva, kana zvichidikanwa;
  • Iyo backup inofanirwa kuchengetwa mune imwe data data kunze kweVDS;
  • Iko kugona kuwana iyo backup kubva chero kupi (imwe sevha, yeko komputa, nezvimwewo).

Chinhu chakakosha kwaive kugona kukurumidza kugadzira backups nekushomeka kwekushandisa kwekuwedzera nzvimbo uye system zviwanikwa.

Izvi hazvisi nezve snapshot yekukurumidza kudzorera iyo system yese, asi nezve mafaera uye dhatabhesi uye nhoroondo yekuchinja.

Pakutanga data:

  • VDS paXEN virtualization;
  • OS CentOS 7;
  • 1C-Bitrix: Webhu nzvimbo;
  • Webhusaiti inobva pa "1C-Bitrix: Site Management", Standard version;
  • Saizi yefaira ndeye 50 GB uye ichakura;
  • Saizi yedatabase ndeye 3 GB uye ichakura.

Ndakabva ndabvisa yakajairwa backup yakavakirwa mu1C-Bitrix. Inokodzera nzvimbo diki chete, nekuti:

  • Inoita kopi yakazara yesaiti nguva dzese, saka kopi imwe neimwe inotora yakaenzana nzvimbo iyo mafaera anotora, mune yangu 50 GB.
  • Backup inoitwa uchishandisa PHP, izvo zvisingagoneke nemavhoriyamu akadaro emafaira, anozoremedza sevha uye haizombopedzi.
  • Uye zvechokwadi, hapagone kuve nekutaura kwemazuva makumi mapfumbamwe kana uchichengeta kopi yakazara.

Mhinduro iyo hoster inopa ndeye backup disk iri munzvimbo imwechete yedata seVDS, asi pane imwe sevha. Iwe unogona kushanda nedhisiki kuburikidza neFTP uye shandisa zvinyorwa zvako, kana ISPManager yakaiswa paVDS, zvino kuburikidza nemodule yayo yekuchengetedza. Iyi sarudzo haina kukodzera nekuda kwekushandiswa kweiyo data data.

Kubva pane zvese zviri pamusoro, sarudzo yakanakisa kwandiri ndeye backup yekuwedzera uchishandisa yangu script muYandex.Cloud (Object Storage) kana Amazon S3 (Amazon Simple Storage Service).

Izvi zvinoda:

  • midzi yekuwana kuVDS;
  • yakaiswa duplicity utility;
  • account muYandex.Cloud.

Kuwedzera backup - nzira iyo chete iyo data yakachinja kubva yekupedzisira backup inochengetwa.

duplicity - chishandiso chekuchengetedza chinoshandisa rsync algorithms uye chinogona kushanda neAmazon S3.

Yandex.Cloud vs Amazon S3

Muchiitiko ichi, hapana mutsauko pakati peYandex.Cloud neAmazon S3 kwandiri. Yandex inotsigira huwandu hweAmazon S3 API, saka unogona kushanda nayo uchishandisa mhinduro dziripo dzekushanda neS3. Mune yangu, iyi ndiyo duplicity utility.

Mukana mukuru weYandex unogona kunge uri mubhadharo muRubles; kana paine data rakawanda, hapazovi nekubatana kune mutengo wekuchinjana. Panyaya yekumhanya, nzvimbo dzeAmazon dzeEuropean data dzinoshanda zvakafanana neRussia data nzvimbo muYandex; semuenzaniso, unogona kushandisa Frankfurt. Ndakamboshandisa Amazon S3 kumabasa akafanana, zvino ndakasarudza kuedza Yandex.

Kuisa Yandex.Cloud

1. Iwe unofanirwa kugadzira account yekubhadhara muYandex.Cloud. Kuti uite izvi, unofanirwa kupinda muYandex.Cloud kuburikidza neYandex account yako kana kugadzira imwe itsva.

2. Gadzira "Cloud".
Inowedzera VDS backup ine saiti pa1C-Bitrix muYandex.Cloud

3. Mu "Cloud" gadzira "Catalogue".
Inowedzera VDS backup ine saiti pa1C-Bitrix muYandex.Cloud

4. Kune "Catalogue" gadzira "Service account".
Inowedzera VDS backup ine saiti pa1C-Bitrix muYandex.Cloud

5. Gadzira makiyi e "Service Account".
Inowedzera VDS backup ine saiti pa1C-Bitrix muYandex.Cloud

6. Sevha makiyi, achadiwa mune ramangwana.
Inowedzera VDS backup ine saiti pa1C-Bitrix muYandex.Cloud

7. Kune "Directory" gadzira "Bucket", mafaera achapinda mairi.
Inowedzera VDS backup ine saiti pa1C-Bitrix muYandex.Cloud

8. Ndinokurudzira kuisa muganhu uye kusarudza "Cold Storage".
Inowedzera VDS backup ine saiti pa1C-Bitrix muYandex.Cloud

Kumisikidza yakarongwa backups pane server

Gwaro iri rinotora hunyanzvi hwekutonga.

1. Isa iyo duplicity utility paVDS

yum install duplicity

2. Gadzira folda ye mysql dumps, mune yangu iri /backup_db muVDS mudzi

3. Gadzira folda ye bash scripts /backup_scripts uye ita yekutanga script ichaita backups /backup_scripts/backup.sh

Zvinyorwa zvemukati:

#!`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. Mhanya script kekutanga uye tarisa mugumisiro; mafaira anofanira kuonekwa mu "Bucket".

`which bash` /backup_scripts/backup.sh

Inowedzera VDS backup ine saiti pa1C-Bitrix muYandex.Cloud

5. Wedzera script ku cron kuti mudzi wemudzi aite 2 nguva pazuva, kana nehuwandu hwaunoda.

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

Kutora data kubva kuYandex.Cloud

1. Gadzira folda yekudzoreredza /backup_restore

2. Gadzira bash script yekudzorera /backup_scripts/restore.sh

Ini ndinopa muenzaniso wakakurumbira wekudzoreredza chaiyo faira:

#!`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. Mhanya script uye mirira mhedzisiro.

`which bash` /backup_scripts/backup.sh

Mu /backup_restore/ folda uchawana index.php faira yakanga yambotsigirwa.

Unogona kugadzirisa zvakanangana kuti zvienderane nezvido zvako.

Minus kudzokorora

duplicity ine imwe drawback - hazvigoneke kuseta muganho wekushandisa chiteshi. Iine chiteshi chenguva dzose izvi hazvigadziri dambudziko, asi kana uchishandisa DDoS-yakachengetedzwa chiteshi nekumhanyisa kuchaja pazuva, ndinoda kukwanisa kuseta muganhu we1-2 megabits.

Semhedziso

Backup muYandex.Cloud kana Amazon S3 inopa yakazvimirira kopi yesaiti uye OS marongero anogona kuwanikwa kubva kune chero imwe sevha kana yeko komputa. Zvakare, iyi kopi haionekwe mungave mune yekubata control panel kana muBitrix admin panhizha, iyo inopa kumwe kuchengetedzeka.

Mune yakaipisisa mamiriro ezvinhu, unogona kuunganidza sevha nyowani uye kutumira saiti chero zuva. Kunyangwe iyo inonyanya kufarirwa mashandiro ichave kugona kuwana faira kune yakatarwa zuva.

Unogona kushandisa nzira iyi nechero VDS kana Dedicated servers nemasaiti pane chero injini, kwete chete 1C-Bitrix. Iyo OS inogonawo kunge isiri yeCentOS, yakadai seUbuntu kana Debian.

Source: www.habr.com

Voeg