Incremental VDS backup nrog ib qhov chaw ntawm 1C-Bitrix hauv Yandex.Cloud

Kuv yuav tsum tau ua thaub qab ntawm lub xaib ntawm "2C-Bitrix: Kev Tswj Xyuas Qhov Chaw" (cov ntaub ntawv thiab mysql database) ob zaug ib hnub thiab khaws keeb kwm ntawm kev hloov pauv rau 1 hnub.

Lub vev xaib nyob ntawm VDS khiav CentOS 7 OS nrog 1C-Bitrix: Web Ib puag ncig tau teeb tsa. Tsis tas li ntawd, ua ib daim ntawv luam theej ntawm koj qhov chaw OS.

Yuav tsum muaj:

  • zaus - 2 zaug ib hnub;
  • Khaws cov ntawv luam rau 90 hnub kawg;
  • Muaj peev xwm tau txais cov ntaub ntawv tus kheej rau hnub tshwj xeeb, yog tias tsim nyog;
  • Cov thaub qab yuav tsum muab khaws cia rau hauv ib lub chaw khaws ntaub ntawv uas tsis yog VDS;
  • Muaj peev xwm nkag tau rau thaub qab ntawm txhua qhov chaw (lwm tus neeg rau zaub mov, lub computer hauv zos, thiab lwm yam).

Lub ntsiab lus tseem ceeb yog lub peev xwm los tsim cov thaub qab sai sai nrog kev siv tsawg ntawm qhov chaw ntxiv thiab cov peev txheej hauv lub cev.

Qhov no tsis yog hais txog ib qho snapshot kom rov qab kho tag nrho cov system sai sai, tab sis hais txog cov ntaub ntawv thiab cov ntaub ntawv thiab keeb kwm ntawm kev hloov pauv.

Cov ntaub ntawv pib:

  • VDS ntawm XEN virtualization;
  • OS CentOS 7;
  • 1C-Bitrix: Web ib puag ncig;
  • Lub Vev Xaib raws li "1C-Bitrix: Site Management", Tus Qauv version;
  • Cov ntaub ntawv loj yog 50 GB thiab yuav loj tuaj;
  • Cov ntaub ntawv loj yog 3 GB thiab yuav loj tuaj.

Kuv tam sim ntawd tshem tawm cov txheej txheem thaub qab ua rau 1C-Bitrix. Nws tsuas yog tsim nyog rau qhov chaw me me, vim tias:

  • Nws ua ib daim ntawv luam tag nrho ntawm lub xaib txhua lub sijhawm, yog li txhua daim ntawv yuav siv tib qhov chaw raws li cov ntaub ntawv nqa, hauv kuv rooj plaub nws yog 50 GB.
  • Backup yog ua tiav siv PHP, uas yog tsis yooj yim sua nrog xws li ntim ntawm cov ntaub ntawv, nws yuav overload lub server thiab yuav tsis tas.
  • Thiab tau kawg, tsis tuaj yeem tham txog 90 hnub thaum khaws ib daim ntawv tag nrho.

Cov kev daws teeb meem uas tus tswv tsev muab yog ib qho thaub qab disk nyob rau hauv tib lub chaw cov ntaub ntawv raws li VDS, tab sis ntawm lwm tus neeg rau zaub mov. Koj tuaj yeem ua haujlwm nrog lub disk ntawm FTP thiab siv koj tus kheej cov ntawv sau, lossis yog tias ISPManager raug teeb tsa rau ntawm VDS, tom qab ntawd los ntawm nws cov qauv thaub qab. Qhov kev xaiv no tsis haum vim yog siv tib lub chaw khaws ntaub ntawv.

Los ntawm tag nrho cov saum toj no, qhov kev xaiv zoo tshaj plaws rau kuv yog qhov kev txhawb nqa ntxiv uas siv kuv tus kheej tsab ntawv hauv Yandex.Cloud (Object Storage) lossis Amazon S3 (Amazon Simple Storage Service).

Qhov no yuav tsum tau:

  • hauv paus nkag mus rau VDS;
  • ntsia duplicate utility;
  • account hauv Yandex.Cloud.

Incremental thaub qab - ib txoj hauv kev uas tsuas yog cov ntaub ntawv uas tau hloov txij li qhov kawg thaub qab tau khaws cia.

du du - cov khoom siv thaub qab uas siv rsync algorithms thiab tuaj yeem ua haujlwm nrog Amazon S3.

Yandex.Cloud vs Amazon S3

Hauv qhov no, tsis muaj qhov sib txawv ntawm Yandex.Cloud thiab Amazon S3 rau kuv. Yandex txhawb nqa ntau ntawm Amazon S3 API, yog li koj tuaj yeem ua haujlwm nrog nws siv cov kev daws teeb meem uas muaj rau kev ua haujlwm nrog S3. Hauv kuv qhov xwm txheej, qhov no yog qhov khoom siv duplicate.

Qhov txiaj ntsig tseem ceeb ntawm Yandex yuav yog kev them nyiaj hauv rubles; yog tias muaj ntau cov ntaub ntawv, yuav tsis muaj kev sib txuas nrog tus nqi pauv. Nyob rau hauv cov nqe lus ntawm kev ceev, Amazon lub European cov ntaub ntawv chaw ua hauj lwm piv rau Lavxias teb sab cov ntaub ntawv chaw nyob rau hauv Yandex; piv txwv li, koj muaj peev xwm siv Frankfurt. Yav dhau los kuv tau siv Amazon S3 rau cov haujlwm zoo sib xws, tam sim no kuv txiav txim siab sim Yandex.

Teeb tsa Yandex.Cloud

1. Koj yuav tsum tsim ib tus account them nyiaj hauv Yandex.Cloud. Txhawm rau ua qhov no, koj yuav tsum nkag mus rau hauv Yandex.Cloud los ntawm koj tus account Yandex lossis tsim ib qho tshiab.

2. Tsim ib "Cloud".
Incremental VDS backup nrog ib qhov chaw ntawm 1C-Bitrix hauv Yandex.Cloud

3. Hauv "Huab" tsim ib qho "Catalogue".
Incremental VDS backup nrog ib qhov chaw ntawm 1C-Bitrix hauv Yandex.Cloud

4. Rau "Catalogue" tsim ib "Service account".
Incremental VDS backup nrog ib qhov chaw ntawm 1C-Bitrix hauv Yandex.Cloud

5. Tsim cov yuam sij rau "Service Account".
Incremental VDS backup nrog ib qhov chaw ntawm 1C-Bitrix hauv Yandex.Cloud

6. Txuag cov yuam sij, lawv yuav xav tau yav tom ntej.
Incremental VDS backup nrog ib qhov chaw ntawm 1C-Bitrix hauv Yandex.Cloud

7. Rau "Cov Ntaub Ntawv" tsim "Bucket", cov ntaub ntawv yuav nkag mus rau hauv nws.
Incremental VDS backup nrog ib qhov chaw ntawm 1C-Bitrix hauv Yandex.Cloud

8. Kuv pom zoo kom teeb qhov txwv thiab xaiv "Cold Storage".
Incremental VDS backup nrog ib qhov chaw ntawm 1C-Bitrix hauv Yandex.Cloud

Teem sijhawm teem sijhawm backups ntawm lub server

Phau ntawv qhia no suav cov kev txawj ua thawj coj.

1. Nruab qhov khoom siv duplicate ntawm VDS

yum install duplicity

2. Tsim ib daim nplaub tshev rau mysql dumps, hauv kuv rooj plaub nws yog / thaub qab_db hauv VDS hauv paus

3. Tsim ib daim nplaub tshev rau bash scripts /backup_scripts thiab ua thawj tsab ntawv uas yuav ua cov thaub qab /backup_scripts/backup.sh

Cov ntsiab lus ntawm tsab ntawv:

#!`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. Khiav tsab ntawv thawj zaug thiab xyuas qhov tshwm sim; cov ntaub ntawv yuav tsum tshwm sim hauv "Bucket".

`which bash` /backup_scripts/backup.sh

Incremental VDS backup nrog ib qhov chaw ntawm 1C-Bitrix hauv Yandex.Cloud

5. Ntxiv ib tsab ntawv rau cron rau tus neeg siv hauv paus kom khiav 2 zaug hauv ib hnub, lossis nrog qhov zaus koj xav tau.

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

Rov qab cov ntaub ntawv los ntawm Yandex.Cloud

1. Ua ib daim ntawv rov qab / thaub qab_restore

2. Ua ib tsab ntawv bash rau rov qab /backup_scripts/restore.sh

Kuv muab qhov piv txwv nrov tshaj plaws ntawm kev rov kho cov ntaub ntawv tshwj xeeb:

#!`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. Khiav cov ntawv thiab tos rau qhov tshwm sim.

`which bash` /backup_scripts/backup.sh

Hauv /backup_restore/ nplaub tshev koj yuav pom cov ntaub ntawv index.php uas yav tas los thaub qab.

Koj tuaj yeem hloov kho kom haum raws li koj xav tau.

Tshem tawm duplication

duplicity muaj ib tug drawback - nws yog tsis muaj peev xwm mus teem ib tug channel siv txwv. Nrog rau cov channel tsis tu ncua no tsis tsim teeb meem, tab sis thaum siv DDoS-tiv thaiv channel nrog kev them nyiaj ceev ib hnub, kuv xav kom muaj peev xwm teeb tsa 1-2 megabits.

Raws li qhov xaus

Thaub qab hauv Yandex.Cloud lossis Amazon S3 muab cov ntawv luam tawm ywj pheej ntawm qhov chaw thiab OS chaw uas tuaj yeem nkag tau los ntawm lwm tus neeg rau zaub mov lossis lub khoos phis tawj hauv zos. Ntxiv mus, daim ntawv no tsis pom nyob rau hauv lub hosting tswj vaj huam sib luag los yog nyob rau hauv lub Bitrix admin vaj huam sib luag, uas muab kev ruaj ntseg ntxiv.

Nyob rau hauv qhov xwm txheej phem tshaj plaws, koj tuaj yeem sib sau ib tus neeg rau zaub mov tshiab thiab xa tawm lub xaib ntawm txhua hnub. Txawm hais tias qhov kev ua haujlwm nrov tshaj plaws yuav muaj peev xwm nkag mus rau cov ntaub ntawv rau hnub tshwj xeeb.

Koj tuaj yeem siv cov txheej txheem no nrog rau VDS lossis Dedicated servers thiab chaw ntawm txhua lub cav, tsis yog 1C-Bitrix xwb. Lub OS kuj tseem yog lwm yam tshaj li CentOS, xws li Ubuntu lossis Debian.

Tau qhov twg los: www.hab.com

Ntxiv ib saib