Waxay lama huraan ii ahayd inaan ku kaydiyo goobta 2C-Bitrix: Maaraynta Goobta 1 jeer maalintii (faylalka iyo xogta mysql) oo aan kaydiyo taariikhda isbeddelada 90 maalmood.
Goobtu waxay ku taal VDS ku shaqeeya CentOS 7 oo leh "1C-Bitrix: Deegaanka Shabakadda" oo lagu rakibay. Intaa waxaa dheer, ka samee nuqul ka mid ah goobaha OS.
Shuruudaha:
- Soo noqnoqda - 2 jeer maalintii;
- Hayso koobiyada 90-kii maalmood ee u dambeeyay;
- Awoodda lagu heli karo galalka gaarka ah taariikh gaar ah, haddii loo baahdo;
- Kaydka waa in lagu kaydiyaa xarun xogeed oo aan ahayn VDS;
- Awoodda helitaanka kaydka meel kasta (server kale, kombiyuutar maxalli ah, iwm.).
Qodob muhiim ah ayaa ahaa awoodda si deg deg ah loo abuuro nuqullo leh isticmaalka ugu yar ee meel dheeraad ah iyo ilaha nidaamka.
Tani maaha wax ku saabsan sawir-qaadis loogu talagalay dib-u-soo-celinta degdega ah ee nidaamka oo dhan, laakiin waxay ku saabsan tahay faylasha iyo kaydka xogta iyo taariikhda isbeddelka.
Xogta hore:
- VDS oo ku saabsan qaabaynta XEN;
- OS CentOS 7;
- 1C-Bitrix: Deegaanka shabakada;
- Websaydh ku salaysan "1C-Bitrix: Maareynta Goobta", Nooca caadiga ah;
- Cabbirka faylka waa 50 GB wuuna kori doonaa;
- Cabbirka kaydku waa 3 GB waana uu kori doonaa.
Kaydinta caadiga ah ee lagu dhisay 1C-Bitrix - isla markiiba waa laga saaray. Waxay ku habboon tahay oo keliya goobaha yaryar, sababtoo ah:
- Waxay samaysaa nuqul buuxa oo goobta ah mar kasta, markaa nuqul kasta wuxuu qaadan doonaa isla qaddarka boosaska faylasha la qaadayo, kiiskeyga waa 50 GB.
- Soo-celinta waxaa lagu sameeyaa iyadoo la adeegsanayo PHP, taas oo aan suurtagal ahayn tirada faylalkaas, waxay xad-dhaafi doontaa server-ka weligeedna ma dhammaan doonto.
- Dabcan, ma jiri karto hadal ku saabsan 90 maalmood kasta marka la kaydinayo nuqul buuxa.
Xalka uu martigeliyaha bixiyo waa saxan kayd ah oo ku yaal isla xarunta xogta ee VDS-ka, laakiin ku yaal server kale. Waxaad la shaqayn kartaa diskka adigoo isticmaalaya FTP oo aad isticmaali kartaa qoraalladaada, ama haddii ISPmanager lagu rakibay VDS-ka, ka dibna iyada oo loo marayo moduleka kaydinta. Doorashadani kuma habboona sababtoo ah isticmaalka xarun xog isku mid ah.
Dhammaan kuwan kor ku xusan, doorashada ugu fiican ee aniga ii ah waa koboc kororsi marka loo eego xaaladdeyda gudaha Yandex.Cloud (Kaydinta Shayga) ama Amazon S3 (Adeeg Kaydinta Fudud ee Amazon).
Tani waxay u baahan tahay:
- helitaanka xididka VDS;
- la rakibay utility labanlaab ah;
- xisaabta Yandex.Cloud.
dib u kordhinta - hab kaas oo kaliya xogta isbedelay tan iyo gurmadkii ugu dambeeyay la kaydiyo.
kalsooni - utility gurmad ah oo isticmaala algorithms rsync oo la shaqayn kara Amazon S3.
Yandex.Cloud vs Amazon S3
Ma jiro farqi u dhexeeya Yandex.Cloud iyo Amazon S3 kiiskan aniga ahaan. Yandex waxay taageertaa qaybta ugu muhiimsan ee Amazon S3 API, si aad ula shaqeyso adiga oo isticmaalaya xalalka diyaar u ah la shaqeynta S3. Xaaladeyda, kani waa utility-ga laba-laabashada.
Faa'iidada ugu weyn ee Yandex waxay noqon kartaa lacag bixinta rubles, haddii ay jiraan xog badan, markaa ma jiri doonto xiriiriye koorsada. Xagga xawaaraha, xarumaha xogta Yurub ee Amazon waxay si siman ula shaqeeyaan kuwa Ruushka ee Yandex, tusaale ahaan, waxaad isticmaali kartaa Frankfurt. Hore waxaan u isticmaali jiray Amazon S3 hawlo la mid ah, hadda waxaan go'aansaday inaan isku dayo Yandex.
Dejinta Yandex.Cloud
1. Waxaad u baahan tahay inaad abuurto akoon biil Yandex.Cloud. Si tan loo sameeyo, waxaad u baahan tahay inaad gasho Yandex.Cloud adoo adeegsanaya akoonkaaga Yandex ama samee mid cusub.
2. Abuur daruur
3. Gudaha "Cloud" samee "Catalog".
4. Wixii "Catalogue" u samee "account Service".
5. Wixii "Akoonka Adeegga" u samee furayaasha.
6. Hayso furayaasha, waxaad u baahan doontaa mustaqbalka.
7. "Hagaha" u samee "Baaldi", faylasha ayaa geli doona.
8. Waxaan ku talinayaa in la sameeyo xad oo aan doorto "Kaydinta Qabow".
Dejinta kaydka qorshaysan ee server-ka
Hagahan waxa uu qaadanayaa xirfadaha aasaasiga ah ee maamulka.
1. Ku rakib tamarta labanlaabka ah ee VDS
yum install duplicity
2. U samee fayl loogu talagalay qashinka mysql, xaaladdeyda waa /backup_db ee xididka VDS
3. U samee fayl qoraallada bash /backup_scripts oo samee qoraalka ugu horreeya ee kaydiya /backup_scripts/backup.sh
Waxa ku jira qoraalka:
#!`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. Orod qoraalka markii ugu horeysay oo hubi natiijada, faylasha waa inay ka soo muuqdaan baaldiga.
`which bash` /backup_scripts/backup.sh
5. Ku dar qoraal cron si loogu isticmaalo xididka si loo fuliyo 2 jeer maalintii, ama inta jeer ee aad u baahan tahay.
10 4,16 * * * `which bash` /backup_scripts/backup.sh
Ka soo kabashada xogta Yandex.Cloud
1. Samee galka soo celinta /backup_restore
2. Samee qoraal bash si aad u soo kabsato /backup_scripts/restore.sh
Waxaan bixiyaa tusaalaha ugu badan ee la codsado ee soo celinta fayl gaar ah:
#!`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. Orod qoraalka oo sug natiijada.
`which bash` /backup_scripts/backup.sh
Faylka /backup_restore/ waxaad ka heli doontaa faylalka index.php ee hore loo kaydiyay.
Waxaad samayn kartaa isbeddello fiican oo ku habboon baahiyahaaga.
laga jaray labanlaab
Nuqulku wuxuu leeyahay hal cillad - ma jirto hab lagu dejiyo xadka isticmaalka kanaalka. Kanaalka caadiga ah, tani dhib ma abuurto, laakiin kanaalka DDoS-ilaaliye leh oo leh xawaare biilasha maalintii, waxaan jeclaan lahaa inaan awoodo inaan dejiyo xadka 1-2 megabits.
Gabagabadii
Ku-xidhka Yandex.Cloud ama Amazon S3 waxay bixisaa koobi madax-banaan oo ah goobta iyo goobaha OS kaas oo laga heli karo server kasta ama kombuyuutar maxalli ah. Isla mar ahaantaana, nuqulkan kama muuqan karo guddiga kantaroolka martigelinta ama guddiga maamulka Bitrix, kaas oo bixiya ammaan dheeri ah.
Natiijada ugu nasiibka daran, waxaad dhisi kartaa server cusub oo aad geyn kartaa goobta taariikhda kasta. Inkasta oo shaqada ugu badan ee la codsado ay noqon doonto awoodda gelitaanka faylka taariikh gaar ah.
Waxaad ku isticmaali kartaa farsamadan mid kasta oo VDS ah ama server-ka go'an iyo goobaha matoorada kasta, ma aha oo kaliya 1C-Bitrix. OS sidoo kale wuxuu noqon karaa mid kale oo aan ahayn CentOS, sida Ubuntu ama Debian.
Source: www.habr.com