Kordhinta VDS-ka ee kaabta oo leh goob ku taal 1C-Bitrix gudaha Yandex.Cloud

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
Kordhinta VDS-ka ee kaabta oo leh goob ku taal 1C-Bitrix gudaha Yandex.Cloud

3. Gudaha "Cloud" samee "Catalog".
Kordhinta VDS-ka ee kaabta oo leh goob ku taal 1C-Bitrix gudaha Yandex.Cloud

4. Wixii "Catalogue" u samee "account Service".
Kordhinta VDS-ka ee kaabta oo leh goob ku taal 1C-Bitrix gudaha Yandex.Cloud

5. Wixii "Akoonka Adeegga" u samee furayaasha.
Kordhinta VDS-ka ee kaabta oo leh goob ku taal 1C-Bitrix gudaha Yandex.Cloud

6. Hayso furayaasha, waxaad u baahan doontaa mustaqbalka.
Kordhinta VDS-ka ee kaabta oo leh goob ku taal 1C-Bitrix gudaha Yandex.Cloud

7. "Hagaha" u samee "Baaldi", faylasha ayaa geli doona.
Kordhinta VDS-ka ee kaabta oo leh goob ku taal 1C-Bitrix gudaha Yandex.Cloud

8. Waxaan ku talinayaa in la sameeyo xad oo aan doorto "Kaydinta Qabow".
Kordhinta VDS-ka ee kaabta oo leh goob ku taal 1C-Bitrix gudaha Yandex.Cloud

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

Kordhinta VDS-ka ee kaabta oo leh goob ku taal 1C-Bitrix gudaha Yandex.Cloud

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

Add a comment