Cadangan VDS Incremental sareng situs dina 1C-Bitrix di Yandex.Cloud

Ieu diperlukeun pikeun kuring cadangan situs ka 2C-Bitrix: Manajemén Loka 1 kali sapoé (file jeung database MySQL) jeung nyimpen sajarah parobahan pikeun 90 poé.

Situs ieu lokasina dina VDS ngajalankeun CentOS 7 kalawan "1C-Bitrix: Lingkungan Web" dipasang. Salaku tambahan, jieun salinan cadangan tina setélan OS.

Syarat:

  • Frékuénsi - 2 kali sapoé;
  • Simpen salinan salami 90 dinten terakhir;
  • Kamampuhan pikeun meunangkeun file individu pikeun titimangsa husus, upami diperlukeun;
  • Cadangan kudu disimpen dina puseur data lian ti VDS;
  • Kamampuhan pikeun ngakses cadangan ti mana wae (server sejen, komputer lokal, jsb).

Hiji titik penting nyaéta kamampuhan pikeun gancang nyieun cadangan kalawan konsumsi minimal spasi tambahan sarta sumberdaya sistem.

Ieu sanes ngeunaan snapshot pikeun gancang balikkeun sakabéh sistem, tapi ngeunaan file jeung database jeung sajarah parobahan.

Data awal:

  • VDS dina virtualisasi XEN;
  • OS CentOS 7;
  • 1C-Bitrix: Lingkungan wéb;
  • Situs dumasar kana "1C-Bitrix: Manajemén Situs", Vérsi standar;
  • Ukuran file nyaeta 50 GB sarta bakal tumuwuh;
  • Ukuran database nyaeta 3 GB sarta bakal tumuwuh.

Cadangan standar diwangun kana 1C-Bitrix - langsung dikaluarkeun. Ieu ngan cocog pikeun situs leutik, sabab:

  • Nyiptakeun salinan lengkep situs unggal waktos, masing-masing, unggal salinan bakal nyandak seueur rohangan nalika kuring nyandak file, bisi kuring 50 GB.
  • Nyadangkeun dilakukeun nganggo PHP, anu mustahil kalayan volume file sapertos kitu, éta bakal ngabeungbeuratan server sareng moal aya tungtungna.
  • Sareng tangtosna, teu aya obrolan ngeunaan 90 dinten nalika nyimpen salinan lengkep.

Solusi anu ditawarkeun hoster nyaéta disk cadangan anu aya di pusat data anu sami sareng VDS, tapi dina server anu béda. Anjeun tiasa damel sareng disk via FTP sareng nganggo skrip anjeun nyalira, atanapi upami ISPManager dipasang dina VDS, teras ngalangkungan modul cadanganna. Pilihan ieu henteu cocog kusabab pamakean pusat data anu sami.

Tina sadaya di luhur, pilihan anu pangsaéna pikeun kuring nyaéta cadangan incremental dumasar kana skenario kuring sorangan dina Yandex.Cloud (Panyimpenan Objék) atanapi Amazon S3 (Layanan Panyimpenan Basajan Amazon).

Ieu ngabutuhkeun:

  • aksés root ka VDS;
  • utilitas duplicity dipasang;
  • akun dina Yandex.Cloud.

cadangan incremental - métode nu ngan data nu geus robah saprak cadangan panungtungan diarsipkeun.

duplikat - utilitas cadangan anu ngagunakeun algoritma rsync sareng tiasa dianggo sareng Amazon S3.

Yandex.Cloud vs Amazon S3

Henteu aya bédana antara Yandex.Cloud sareng Amazon S3 dina hal ieu pikeun kuring. Yandex ngadukung bagian utama Amazon S3 API, ku kituna anjeun tiasa damel sareng éta nganggo solusi anu sayogi pikeun damel sareng S3. Dina kasus kuring, ieu mangrupikeun utiliti duplikat.

Kauntungan utama Yandex tiasa mayar dina rubles, upami aya seueur data, maka moal aya tautan kana kursus. Dina hal laju, pusat data Éropa Amazon dianggo saluyu sareng Rusia di Yandex, contona, anjeun tiasa nganggo Frankfurt. Kuring saacanna nganggo Amazon S3 pikeun tugas anu sami, ayeuna kuring mutuskeun pikeun nyobian Yandex.

Nyetél Yandex.Cloud

1. Anjeun kedah ngadamel akun tagihan dina Yandex.Cloud. Jang ngalampahkeun ieu, anjeun kudu asup ka Yandex.Cloud ngaliwatan akun Yandex Anjeun atawa nyieun nu anyar.

2. Jieun Awan.
Cadangan VDS Incremental sareng situs dina 1C-Bitrix di Yandex.Cloud

3. Dina "Cloud" nyieun "Katalog".
Cadangan VDS Incremental sareng situs dina 1C-Bitrix di Yandex.Cloud

4. Pikeun "Katalog" jieun "Akun Service".
Cadangan VDS Incremental sareng situs dina 1C-Bitrix di Yandex.Cloud

5. Pikeun "Akun Service" nyieun konci.
Cadangan VDS Incremental sareng situs dina 1C-Bitrix di Yandex.Cloud

6. Tetep konci, anjeun bakal butuh aranjeunna dina mangsa nu bakal datang.
Cadangan VDS Incremental sareng situs dina 1C-Bitrix di Yandex.Cloud

7. Pikeun "Katalog" nyieun "Ember", file bakal digolongkeun kana eta.
Cadangan VDS Incremental sareng situs dina 1C-Bitrix di Yandex.Cloud

8. Abdi nyarankeun netepkeun wates sareng milih "Cold Storage".
Cadangan VDS Incremental sareng situs dina 1C-Bitrix di Yandex.Cloud

Nyetel cadangan dijadwalkeun dina server

Pituduh ieu nganggap kaahlian administrasi dasar.

1. Pasang utilitas duplicity dina VDS

yum install duplicity

2. Jieun folder pikeun mysql dumps, bisi kuring éta / backup_db dina akar VDS

3. Jieun folder pikeun skrip bash /backup_scripts sareng ngadamel skrip munggaran anu bakal nyadangkeun /backup_scripts/backup.sh

eusi naskah:

#!`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. Jalankeun naskah pikeun kahiji kalina jeung pariksa hasilna, file kudu muncul dina LIPI.

`which bash` /backup_scripts/backup.sh

Cadangan VDS Incremental sareng situs dina 1C-Bitrix di Yandex.Cloud

5. Tambahkeun naskah kana cron pikeun pamaké root bisa dieksekusi 2 kali sapoé, atawa sakumaha sering anjeun peryogi.

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

Pamulihan data tina Yandex.Cloud

1. Jieun folder malikkeun /backup_restore

2. Jieun skrip malikkeun bash /backup_scripts/restore.sh

Kuring masihan conto anu paling dipénta pikeun pulih file khusus:

#!`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. Jalankeun skrip sareng ngantosan hasilna.

`which bash` /backup_scripts/backup.sh

Dina polder /backup_restore/ anjeun bakal mendakan file index.php anu sateuacana kalebet kana cadangan.

Anjeun tiasa ngadamel panyesuaian anu langkung saé pikeun nyocogkeun ka kabutuhan anjeun.

minus duplikat

Duplikat ngagaduhan hiji kakurangan - teu aya jalan pikeun nyetél wates pamakean saluran. Kalawan saluran normal, ieu teu nyieun masalah, tapi ku saluran DDoS-ditangtayungan kalawan speed per poé tagihan, Abdi hoyong tiasa nyetel wates 1-2 megabits.

Salaku kacindekan

Nyadangkeun dina Yandex.Cloud atanapi Amazon S3 nyayogikeun salinan bebas tina situs sareng setélan OS anu tiasa diakses tina server atanapi komputer lokal anu sanés. Dina waktos anu sami, salinan ieu henteu katingali dina panel kontrol hosting atanapi dina panel admin Bitrix, anu nyayogikeun kaamanan tambahan.

Dina hasil anu paling musibah, anjeun tiasa ngawangun server énggal sareng nyebarkeun situs éta pikeun tanggal naon waé. Sanajan pungsionalitas paling dipénta bakal kamampuhan pikeun ngakses file pikeun titimangsa husus.

Anjeun tiasa nganggo téknik ieu sareng VDS atanapi server Dedicated sareng situs dina mesin naon waé, sanés ngan ukur 1C-Bitrix. OS ogé tiasa lian ti CentOS, sapertos Ubuntu atanapi Debian.

sumber: www.habr.com

Tambahkeun komentar