Zinali zofunikira kuti ndisunge malowa ku 2C-Bitrix: Site Management 1 pa tsiku (mafayilo ndi mysql database) ndikusunga mbiri ya kusintha kwa masiku 90.
Tsambali lili pa VDS yomwe ikuyenda CentOS 7 yokhala ndi "1C-Bitrix: Web Environment" yoyikidwa. Kuphatikiza apo, sungani zosunga zobwezeretsera za OS.
Zofunikira:
- pafupipafupi - 2 pa tsiku;
- Sungani makope kwa masiku 90 apitawa;
- Kutha kupeza mafayilo amtundu wa tsiku linalake, ngati kuli kofunikira;
- Zosunga zobwezeretsera ziyenera kusungidwa mu data center kupatula VDS;
- Kutha kupeza zosunga zobwezeretsera kulikonse (seva ina, kompyuta yakomweko, ndi zina).
Mfundo yofunikira inali kuthekera kopanga ma backups mwachangu ndikugwiritsa ntchito pang'ono malo owonjezera ndi zida zamakina.
Izi siziri za chithunzithunzi cha kubwezeretsa mwamsanga dongosolo lonse, koma za mafayilo ndi database ndi mbiri ya kusintha.
Zoyambira:
- VDS pa XEN virtualization;
- OS CentOS 7;
- 1C-Bitrix: Malo a pa intaneti;
- Tsamba lochokera pa "1C-Bitrix: Site Management", Mtundu wokhazikika;
- Kukula kwa fayilo ndi 50 GB ndipo kudzakula;
- Kukula kwa database ndi 3 GB ndipo kudzakula.
Zosunga zobwezeretsera zokhazikika mu 1C-Bitrix - zimachotsedwa nthawi yomweyo. Ndizoyenera malo ang'onoang'ono okha, chifukwa:
- Amapanga kopi yathunthu ya malowa nthawi iliyonse, motsatira, kopi iliyonse idzatenga malo ochuluka momwe ndimatenga mafayilo, kwa ine ndi 50 GB.
- Zosunga zobwezeretsera zimachitika pogwiritsa ntchito PHP, zomwe sizingatheke ndi mafayilo otere, zidzadzaza seva ndipo sizidzatha.
- Ndipo, ndithudi, sipangakhale zokamba za masiku 90 pamene mukusunga buku lathunthu.
Yankho lomwe hoster limapereka ndi disk yosunga zobwezeretsera yomwe ili pamalo amodzi a data monga VDS, koma pa seva yosiyana. Mutha kugwira ntchito ndi diski kudzera pa FTP ndikugwiritsa ntchito zolemba zanu, kapena ngati ISPManager yayikidwa pa VDS, ndiye kudzera mu gawo lake losunga zobwezeretsera. Njirayi si yoyenera chifukwa chogwiritsa ntchito deta yomweyi.
Kuchokera pazimenezi, chisankho chabwino kwambiri kwa ine ndikusunga zosunga zobwezeretsera malinga ndi momwe ndingachitire mu Yandex.Cloud (Object Storage) kapena Amazon S3 (Amazon Simple Storage Service).
Izi zimafuna:
- kupeza mizu ku VDS;
- anaika duplicity zothandiza;
- akaunti mu Yandex.Cloud.
zowonjezera zowonjezera - njira yomwe deta yokhayo yomwe yasintha kuyambira pomwe zosunga zomaliza zimasungidwa.
kuphatikiza - chida chosungira chomwe chimagwiritsa ntchito ma algorithms a rsync ndipo chitha kugwira ntchito ndi Amazon S3.
Yandex.Cloud vs Amazon S3
Palibe kusiyana pakati pa Yandex.Cloud ndi Amazon S3 pankhaniyi kwa ine. Yandex imathandizira gawo lalikulu la Amazon S3 API, kotero mutha kugwira nawo ntchito pogwiritsa ntchito njira zomwe zilipo pogwira ntchito ndi S3. Kwa ine, izi ndizomwe zimagwiritsidwa ntchito kawiri.
Ubwino waukulu wa Yandex ukhoza kukhala malipiro mu rubles, ngati pali deta yambiri, ndiye kuti sipadzakhala kugwirizana kwa maphunzirowo. Pankhani ya liwiro, malo a data aku Europe aku Amazon amagwira ntchito molingana ndi aku Russia ku Yandex, mwachitsanzo, mutha kugwiritsa ntchito Frankfurt. Ndinagwiritsa ntchito Amazon S3 kale ntchito zofanana, tsopano ndinaganiza zoyesa Yandex.
Kukhazikitsa Yandex.Cloud
1. Muyenera kupanga akaunti yolipira mu Yandex.Cloud. Kuti muchite izi, muyenera kulowa mu Yandex.Cloud kudzera mu akaunti yanu ya Yandex kapena pangani yatsopano.
2. Pangani Cloud.
3. Mu "Mtambo" pangani "Catalog".
4. Kwa "Catalogue" pangani "akaunti ya Service".
5. Pa "akaunti ya Service" pangani makiyi.
6. Sungani makiyi, mudzawafuna mtsogolo.
7. Kwa "Catalog" pangani "Chidebe", mafayilo adzagwera mmenemo.
8. Ndikupangira kukhazikitsa malire ndikusankha "Cold Storage".
Kukhazikitsa zosunga zobwezeretsera pa seva
Bukhuli limatengera luso lofunikira pakuwongolera.
1. Ikani chida chowirikiza pa VDS
yum install duplicity
2. Pangani chikwatu cha mysql dumps, kwa ine ndi /backup_db muzu wa VDS
3. Pangani chikwatu cha bash scripts /backup_scripts ndikupanga script yoyamba yomwe isunga /backup_scripts/backup.sh
Zolemba:
#!`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. Kuthamanga script kwa nthawi yoyamba ndikuwona zotsatira, owona ayenera kuonekera mu Chidebe.
`which bash` /backup_scripts/backup.sh
5. Onjezani script ku cron kuti wogwiritsa ntchito mizu aphedwe 2 pa tsiku, kapena nthawi zambiri momwe mukufunikira.
10 4,16 * * * `which bash` /backup_scripts/backup.sh
Kubwezeretsa kwa data kuchokera ku Yandex.Cloud
1. Pangani chikwatu chobwezeretsa /backup_restore
2. Pangani bash kubwezeretsa script /backup_scripts/restore.sh
Ndikupereka chitsanzo chofunsidwa kwambiri chobwezeretsa fayilo inayake:
#!`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. Thamangani script ndikudikirira zotsatira.
`which bash` /backup_scripts/backup.sh
Mu /backup_restore/ foda mudzapeza fayilo ya index.php yomwe idaphatikizidwa kale muzosunga zobwezeretsera.
Mutha kusintha bwino kuti zigwirizane ndi zosowa zanu.
kuchotsera kubwereza
Kubwereza kuli ndi vuto limodzi - palibe njira yokhazikitsira malire ogwiritsira ntchito njira. Ndi njira yodziwika bwino, izi sizimapanga vuto, koma ndi njira yotetezedwa ndi DDoS yothamanga tsiku ndi tsiku, ndikufuna kukhala ndi malire a 1-2 megabits.
Pomaliza
Kusunga zosunga zobwezeretsera mu Yandex.Cloud kapena Amazon S3 kumapereka kopi yodziyimira payokha ya tsambalo ndi zoikamo za OS zomwe zitha kupezeka kuchokera ku seva ina iliyonse kapena kompyuta yakomweko. Nthawi yomweyo, kopeli silikuwoneka mu gulu lowongolera kapena pagawo la admin la Bitrix, lomwe limapereka chitetezo chowonjezera.
Pazotsatira zoyipa kwambiri, mutha kupanga seva yatsopano ndikutumiza tsambalo tsiku lililonse. Ngakhale ntchito yofunsidwa kwambiri idzakhala mwayi wopeza fayilo pa tsiku linalake.
Mutha kugwiritsa ntchito njirayi ndi VDS iliyonse kapena ma seva odzipereka ndi masamba pamainjini aliwonse, osati 1C-Bitrix yokha. OS ikhozanso kukhala ina osati CentOS, monga Ubuntu kapena Debian.
Source: www.habr.com