Backup VDS inkrementali b'sit fuq 1C-Bitrix f'Yandex.Cloud

Kien meħtieġ għalija li tagħmel backup tas-sit għal 2C-Bitrix: Ġestjoni tas-Sit 1 darbiet kuljum (fajls u database mysql) u naħżen storja ta 'bidliet għal 90 jum.

Is-sit jinsab fuq VDS li jħaddem CentOS 7 b'"1C-Bitrix: Web Environment" installat. Barra minn hekk, agħmel kopja backup tas-settings tal-OS.

Rekwiżiti:

  • Frekwenza - 2 darbiet kuljum;
  • Żomm kopji għall-aħħar 90 jum;
  • Il-ħila li tikseb fajls individwali għal data speċifika, jekk meħtieġ;
  • Il-backup għandu jinħażen f'ċentru tad-dejta għajr VDS;
  • Il-ħila li taċċessa l-backup minn kullimkien (server ieħor, kompjuter lokali, eċċ.).

Punt importanti kien il-kapaċità li jinħoloq backups malajr b'konsum minimu ta 'spazju addizzjonali u riżorsi tas-sistema.

Din mhix dwar snapshot għal restawr rapidu tas-sistema kollha, iżda dwar fajls u d-database u l-istorja tal-bidliet.

Dejta tas-sors:

  • VDS fuq virtwalizzazzjoni XEN;
  • OS CentOS 7;
  • 1C-Bitrix: Ambjent tal-Web;
  • Sit ibbażat fuq "1C-Bitrix: Ġestjoni tas-Sit", Verżjoni Standard;
  • Id-daqs tal-fajl huwa 50 GB u se jikber;
  • Id-daqs tad-database huwa 3 GB u se jikber.

Backup standard mibni f'1C-Bitrix - eskluż immedjatament. Huwa adattat biss għal siti żgħar, minħabba li:

  • Jagħmel kopja sħiħa tas-sit kull darba, rispettivament, kull kopja tieħu spazju daqs kemm nieħu l-fajls, fil-każ tiegħi huwa 50 GB.
  • Il-backup isir bl-użu ta 'PHP, li huwa impossibbli b'tali volumi ta' fajls, se jgħabbi żżejjed is-server u qatt ma jispiċċa.
  • U ovvjament, ma jistax ikun hemm diskors dwar xi 90 jum meta tinħażen kopja sħiħa.

Is-soluzzjoni li joffri l-hoster hija backup disk li jinsab fl-istess ċentru tad-dejta bħall-VDS, iżda fuq server differenti. Tista 'taħdem mad-diska permezz tal-FTP u tuża l-iskripts tiegħek stess, jew jekk ISPManager huwa installat fuq il-VDS, imbagħad permezz tal-modulu backup tiegħu. Din l-għażla mhix adattata minħabba l-użu tal-istess ċentru tad-dejta.

Minn dak kollu ta 'hawn fuq, l-aħjar għażla għalija hija backup inkrementali skont ix-xenarju tiegħi stess f'Yandex.Cloud (Ħażna tal-Oġġetti) jew Amazon S3 (Servizz ta' Ħażna Sempliċi ta 'Amazon).

Dan jeħtieġ:

  • aċċess mill-għeruq għall-VDS;
  • utilità dupliċità installata;
  • kont f'Yandex.Cloud.

backup inkrementali - metodu li fih tiġi arkivjata biss data li nbidlet mill-aħħar backup.

dupliċità - utilità backup li tuża algoritmi rsync u tista 'taħdem ma' Amazon S3.

Yandex.Cloud vs Amazon S3

M'hemm l-ebda differenza bejn Yandex.Cloud u Amazon S3 f'dan il-każ għalija. Yandex jappoġġja l-parti ewlenija tal-Amazon S3 API, sabiex tkun tista 'taħdem magħha billi tuża s-soluzzjonijiet li huma disponibbli biex taħdem ma' S3. Fil-każ tiegħi, din hija l-utilità tad-dupliċità.

Il-vantaġġ ewlieni ta 'Yandex jista' jkun il-ħlas f'rubli, jekk ikun hemm ħafna dejta, allura ma jkun hemm l-ebda rabta mal-kors. F'termini ta 'veloċità, iċ-ċentri tad-dejta Ewropej tal-Amazon jaħdmu b'mod proporzjonat ma' dawk Russi f'Yandex, pereżempju, tista 'tuża Frankfurt. Preċedentement użajt Amazon S3 għal kompiti simili, issa ddeċidejt li nipprova Yandex.

Twaqqif ta' Yandex.Cloud

1. Għandek bżonn toħloq kont tal-kontijiet f'Yandex.Cloud. Biex tagħmel dan, għandek bżonn tidħol f'Yandex.Cloud permezz tal-kont Yandex tiegħek jew toħloq wieħed ġdid.

2. Oħloq Cloud.
Backup VDS inkrementali b'sit fuq 1C-Bitrix f'Yandex.Cloud

3. Fil-"Cloud" oħloq "Katalog".
Backup VDS inkrementali b'sit fuq 1C-Bitrix f'Yandex.Cloud

4. Għall-"Katalgu" oħloq "kont tas-servizz".
Backup VDS inkrementali b'sit fuq 1C-Bitrix f'Yandex.Cloud

5. Għall-"kont tas-servizz" oħloq ċwievet.
Backup VDS inkrementali b'sit fuq 1C-Bitrix f'Yandex.Cloud

6. Ħlief iċ-ċwievet, ser ikollok bżonnhom fil-futur.
Backup VDS inkrementali b'sit fuq 1C-Bitrix f'Yandex.Cloud

7. Għall-"Katalog" toħloq "Barmil", fajls se jaqgħu fiha.
Backup VDS inkrementali b'sit fuq 1C-Bitrix f'Yandex.Cloud

8. Nirrakkomanda li tistabbilixxi limitu u tagħżel "Ħażna kiesħa".
Backup VDS inkrementali b'sit fuq 1C-Bitrix f'Yandex.Cloud

Twaqqif ta' backups skedati fuq is-server

Din il-gwida tassumi ħiliet amministrattivi bażiċi.

1. Installa l-utilità tad-dupliċità fuq il-VDS

yum install duplicity

2. Oħloq folder għal mysql dumps, fil-każ tiegħi huwa /backup_db fl-għerq VDS

3. Oħloq folder għall-iskripts bash /backup_scripts u agħmel l-ewwel skript li tagħmel backup /backup_scripts/backup.sh

Kontenut tal-iskript:

#!`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. Mexxi l-iskript għall-ewwel darba u ċċekkja r-riżultat, il-fajls għandhom jidhru fil-Barmil.

`which bash` /backup_scripts/backup.sh

Backup VDS inkrementali b'sit fuq 1C-Bitrix f'Yandex.Cloud

5. Żid skript għal cron biex l-utent għerq jiġi esegwit 2 darbiet kuljum, jew kemm-il darba għandek bżonn.

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

Irkupru tad-dejta minn Yandex.Cloud

1. Agħmel folder ta' restawr /backup_restore

2. Agħmel bash restore script /backup_scripts/restore.sh

Nagħti l-aktar eżempju mitlub ta’ rkupru ta’ fajl speċifiku:

#!`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. Mexxi l-iskript u stenna r-riżultat.

`which bash` /backup_scripts/backup.sh

Fil-folder /backup_restore/ issib il-fajl index.php li qabel kien inkluż fil-backup.

Tista 'tagħmel aġġustamenti irqaq biex taqdi l-bżonnijiet tiegħek.

nieqes id-dupliċità

Id-dupliċità għandha żvantaġġ wieħed - m'hemm l-ebda mod kif jiġi stabbilit limitu għall-użu tal-kanal. B'kanal normali, dan ma joħloqx problema, iżda b'kanal protett mid-DDoS b'kontijiet ta 'veloċità għal kull jum, nixtieq inkun kapaċi nistabbilixxi limitu ta' 1-2 megabits.

Bħala konklużjoni

Is-sostenn f'Yandex.Cloud jew Amazon S3 jipprovdi kopja indipendenti tas-sit u l-issettjar tal-OS li jistgħu jiġu aċċessati minn kwalunkwe server ieħor jew kompjuter lokali. Fl-istess ħin, din il-kopja mhix viżibbli la fil-pannell tal-kontroll tal-hosting u lanqas fil-pannell tal-amministrazzjoni Bitrix, li jipprovdi sigurtà addizzjonali.

Fl-aktar riżultat sfortunat, tista 'tibni server ġdid u tuża s-sit għal kwalunkwe data. Għalkemm il-funzjonalità l-aktar mitluba se tkun il-kapaċità li taċċessa l-fajl għal data speċifika.

Tista 'tuża din it-teknika ma' kwalunkwe servers u siti VDS jew Dedikati fuq kwalunkwe magna, mhux biss 1C-Bitrix. L-OS jista 'wkoll ikun ieħor għajr CentOS, bħal Ubuntu jew Debian.

Sors: www.habr.com

Żid kumment