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 inopa muridzi weimbaIyi idhisiki yekuchengetedza iri panzvimbo imwechete yedata neVDS, asi pane imwe server yakasiyana. Unogona kuwana dhisiki kuburikidza neFTP uye kushandisa zvinyorwa zvako, kana, kana ISPManager yakaiswa paVDS, kuburikidza nemodule yayo yekuchengetedza. Sarudzo iyi haina kukodzera nekuti inoshandisa nzvimbo imwechete yedata.

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

Kuchengetedza data kubva kuYandex.Cloud kana kuAmazon S3 kunopa kopi yakazvimirira yewebhusaiti yako nemagadzirirwo eOS ayo anogona kuwanikwa kubva kune chero imwe sevha kana komputa yemuno. Kopi iyi haionekwe nemunhu wese. control panels hosting, kana muBitrix admin panel, iyo inopa kuchengetedzeka kwakawedzerwa.

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