Ikhophi yasenqolobaneni ekhulayo ye-VDS enesayithi ku-1C-Bitrix ku-Yandex.Cloud

Ngangidinga ukwenza izipele zesayithi ku-"2C-Bitrix: Ukuphathwa Kwesayithi" (amafayela kanye ne-mysql database) kabili ngosuku futhi ngigcine umlando wezinguquko izinsuku ezingu-1.

Isiza sitholakala ku-VDS esebenzisa i-CentOS 7 OS ene-1C-Bitrix: Indawo Yewebhu efakiwe. Ukwengeza, yenza ikhophi eyisipele yezilungiselelo zakho ze-OS.

Izidingo:

  • Imvamisa - izikhathi ezi-2 ngosuku;
  • Gcina amakhophi izinsuku zokugcina ezingama-90;
  • Ikhono lokuthola amafayela ngamanye ngosuku oluthile, uma kunesidingo;
  • Ikhophi yasenqolobaneni kufanele igcinwe esikhungweni sedatha ngaphandle kwe-VDS;
  • Ikhono lokufinyelela ikhophi yasenqolobaneni noma yikuphi (enye iseva, ikhompuyutha yendawo, njll.).

Iphuzu elibalulekile kwaba ikhono lokudala ngokushesha ama-backups ngokusetshenziswa okuncane kwesikhala esengeziwe nezinsiza zesistimu.

Lokhu akumayelana nesifinyezo sokubuyisela ngokushesha lonke uhlelo, kodwa mayelana namafayela kanye nesizindalwazi kanye nomlando wezinguquko.

Idatha yokuqala:

  • I-VDS ku-XEN virtualization;
  • I-OS CentOS 7;
  • I-1C-Bitrix: Imvelo yewebhu;
  • Iwebhusayithi esekelwe “ku-1C-Bitrix: Ukuphathwa Kwesayithi”, Inguqulo evamile;
  • Usayizi wefayela ungu-50 GB futhi uzokhula;
  • Usayizi wesizindalwazi ungu-3 GB futhi uzokhula.

Ngokushesha ngikhiphe isipele esijwayelekile esakhelwe ku-1C-Bitrix. Ifaneleka kuphela kumasayithi amancane, ngoba:

  • Yenza ikhophi egcwele yesayithi ngaso sonke isikhathi, ngakho-ke ikhophi ngayinye izothatha inani elifanayo lesikhala njengoba amafayela athatha, esimweni sami yi-50 GB.
  • Ukwenza ikhophi yasenqolobaneni kwenziwa kusetshenziswa i-PHP, okungenakwenzeka ngamavolumu anjalo amafayela, izolayisha kakhulu iseva futhi ayisoze yaqeda.
  • Futhi-ke, angeke kukhulunywe nganoma yiziphi izinsuku ezingama-90 lapho ugcina ikhophi egcwele.

Isixazululo esinikezwa ngumsingathi yidiski yokusekelayo etholakala esikhungweni sedatha esifanayo njenge-VDS, kodwa kuseva ehlukile. Ungakwazi ukusebenza ngediski nge-FTP futhi usebenzise imibhalo yakho siqu, noma uma i-ISPManager ifakiwe ku-VDS, bese kuba ngemojula yayo yokusekelayo. Le nketho ayifaneleki ngenxa yokusetshenziswa kwesikhungo sedatha esifanayo.

Kusuka kukho konke okungenhla, inketho engcono kakhulu kimi ikhophi yasenqolobaneni ekhuphukayo kusetshenziswa iskripthi sami ku-Yandex.Cloud (Isitoreji Sento) noma i-Amazon S3 (Isevisi Yesitoreji Esilula Ye-Amazon).

Lokhu kudinga:

  • ukufinyelela kwezimpande ku-VDS;
  • insiza ye-duplicity efakiwe;
  • i-akhawunti ku-Yandex.Cloud.

Ikhophi yasenqolobaneni ekhulayo — indlela lapho kuphela idatha eshintshile kusukela kukhophi yasenqolobaneni yokugcina igcinwa kungobo yomlando.

ukuphindeka - insiza yokusekelayo esebenzisa ama-algorithms we-rsync futhi ingasebenza ne-Amazon S3.

Yandex.Cloud vs Amazon S3

Kulokhu, akukho mehluko phakathi kwe-Yandex.Cloud ne-Amazon S3 kimi. I-Yandex isekela inqwaba ye-Amazon S3 API, ukuze ukwazi ukusebenza nayo usebenzisa izixazululo ezikhona zokusebenza nge-S3. Endabeni yami, lena insiza eyimpinda.

Inzuzo eyinhloko ye-Yandex ingaba inkokhelo ngama-ruble; uma kunedatha eningi, ngeke kube nokuxhumeka esilinganisweni sokushintshaniswa. Mayelana nesivinini, izikhungo zedatha zase-Amazon zase-Europe zisebenza ngokuqhathaniswa nezikhungo zedatha zaseRussia e-Yandex; isibonelo, ungasebenzisa i-Frankfurt. Ngaphambilini ngasebenzisa i-Amazon S3 ngemisebenzi efanayo, manje nginqume ukuzama i-Yandex.

Isetha i-Yandex.Cloud

1. Udinga ukudala i-akhawunti yokukhokha ku-Yandex.Cloud. Ukuze wenze lokhu, udinga ukungena ngemvume ku-Yandex.Cloud nge-akhawunti yakho ye-Yandex noma udale entsha.

2. Dala "Ifu".
Ikhophi yasenqolobaneni ekhulayo ye-VDS enesayithi ku-1C-Bitrix ku-Yandex.Cloud

3. Ku-"Cloud" dala "Ikhathalogu".
Ikhophi yasenqolobaneni ekhulayo ye-VDS enesayithi ku-1C-Bitrix ku-Yandex.Cloud

4. Ku-"Catalogue" dala "i-akhawunti yesevisi".
Ikhophi yasenqolobaneni ekhulayo ye-VDS enesayithi ku-1C-Bitrix ku-Yandex.Cloud

5. Dala okhiye "be-Akhawunti Yesevisi".
Ikhophi yasenqolobaneni ekhulayo ye-VDS enesayithi ku-1C-Bitrix ku-Yandex.Cloud

6. Londoloza okhiye, bazodingeka esikhathini esizayo.
Ikhophi yasenqolobaneni ekhulayo ye-VDS enesayithi ku-1C-Bitrix ku-Yandex.Cloud

7. Ukuze "Uhla lwemibhalo" dala "Ibhakede", amafayela azongena kulo.
Ikhophi yasenqolobaneni ekhulayo ye-VDS enesayithi ku-1C-Bitrix ku-Yandex.Cloud

8. Ngincoma ukusetha umkhawulo bese ukhetha "Isitoreji Esibandayo".
Ikhophi yasenqolobaneni ekhulayo ye-VDS enesayithi ku-1C-Bitrix ku-Yandex.Cloud

Ukusetha izipele ezihleliwe kuseva

Lo mhlahlandlela uthatha amakhono ayisisekelo okuphatha.

1. Faka insiza eyimpinda ku-VDS

yum install duplicity

2. Dala ifolda yokulahla i-mysql, esimweni sami yi /backup_db impande ye-VDS

3. Dala ifolda ye-bash scripts /backup_scripts futhi wenze iskripthi sokuqala esizokwenza izipele /backup_scripts/backup.sh

Okuqukethwe kombhalo:

#!`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. Qalisa iskripthi okokuqala bese uhlola umphumela, amafayela kufanele avele “Ebhakedeni”.

`which bash` /backup_scripts/backup.sh

Ikhophi yasenqolobaneni ekhulayo ye-VDS enesayithi ku-1C-Bitrix ku-Yandex.Cloud

5. Engeza umbhalo ku-cron ukuze umsebenzisi wempande asebenze izikhathi ezi-2 ngosuku, noma nemvamisa oyidingayo.

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

Ithola idatha kusuka ku-Yandex.Cloud

1. Yenza ifolda yokutakula /backup_restore

2. Yenza iskripthi se-bash ukuze uthole kabusha /backup_scripts/restore.sh

Nginikeza isibonelo esidume kakhulu sokubuyisela ifayela elithile:

#!`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. Qalisa iskripthi bese ulinda umphumela.

`which bash` /backup_scripts/backup.sh

Kufolda ethi /backup_restore/ uzothola ifayela elithi index.php elalondolozwe ngaphambilini.

Ungenza ukulungisa okuhle ukuze kuhambisane nezidingo zakho.

Susa impinda

ukuphindaphindeka kunesici esisodwa - akwenzeki ukusetha umkhawulo wokusebenzisa isiteshi. Ngesiteshi esivamile lokhu akudali inkinga, kodwa uma usebenzisa isiteshi esivikelwe i-DDoS ngokushaja isivinini ngosuku, ngingathanda ukukwazi ukusetha umkhawulo wama-megabits angu-1-2.

Njengesiphetho

Ikhophi yasenqolobaneni ku-Yandex.Cloud noma i-Amazon S3 inikeza ikhophi ezimele yesayithi nezilungiselelo ze-OS ezingafinyelelwa kunoma iyiphi enye iseva noma ikhompuyutha yendawo. Ngaphezu kwalokho, le khophi ayibonakali kuphaneli yokulawula yokuba usokhaya noma kuphaneli yokulawula ye-Bitrix, ehlinzeka ngokuvikeleka okwengeziwe.

Esimeni esibi kakhulu, ungakwazi ukuhlanganisa iseva entsha futhi usebenzise isayithi nganoma iyiphi idethi. Nakuba ukusebenza okudume kakhulu kuzoba yikhono lokufinyelela ifayela losuku oluthile.

Ungasebenzisa le nqubo nganoma iyiphi i-VDS noma amaseva azinikezele namasayithi kunoma yiziphi izinjini, hhayi nje i-1C-Bitrix. I-OS ingase ibe enye ngaphandle kwe-CentOS, njengo-Ubuntu noma i-Debian.

Source: www.habr.com

Engeza amazwana