ינקרעמענטאַל VDS באַקאַפּ מיט אַ פּלאַץ אויף 1C-Bitrix אין Yandex.Cloud

איך דארף צו מאַכן באַקאַפּס פון דעם פּלאַץ אויף "2C-Bitrix: מאַפּע מאַנאַגעמענט" (פיילס און מיסקל דאַטאַבייס) צוויי מאָל פּער טאָג און קראָם אַ געשיכטע פון ​​ענדערונגען פֿאַר 1 טעג.

דער פּלאַץ איז ליגן אויף אַ VDS פליסנדיק CentOS 7 OS מיט 1C-Bitrix: וועב סוויווע אינסטאַלירן. דערצו, מאַכן אַ באַקאַפּ קאָפּיע פון ​​דיין אַס סעטטינגס.

רעקווירעמענץ:

  • אָפטקייַט - 2 מאל אַ טאָג;
  • האַלטן קאפיעס פֿאַר די לעצטע 90 טעג;
  • די פיייקייט צו באַקומען יחיד טעקעס פֿאַר אַ ספּעציפיש דאַטע, אויב נייטיק;
  • די באַקאַפּ מוזן זיין סטאָרד אין אַ דאַטן צענטער אנדערע ווי VDS;
  • די פיייקייט צו אַקסעס די באַקאַפּ פֿון ערגעץ (אן אנדער סערווער, היגע קאָמפּיוטער, אאז"ו ו).

אַ וויכטיק פונט איז געווען די פיייקייט צו געשווינד שאַפֿן באַקאַפּס מיט מינימאַל קאַנסאַמשאַן פון נאָך פּלאַץ און סיסטעם רעסורסן.

דאָס איז נישט וועגן אַ מאָמענטבילד פֿאַר געשווינד ריסטאָרינג די גאנצע סיסטעם, אָבער וועגן טעקעס און די דאַטאַבייס און די געשיכטע פון ​​ענדערונגען.

מקור דאַטן:

  • VDS אויף XEN ווירטואַליזאַטיאָן;
  • OS CentOS 7;
  • 1C-Bitrix: וועב סוויווע;
  • וועבזייטל באזירט אויף "1C-Bitrix: מאַפּע מאַנאַגעמענט", נאָרמאַל ווערסיע;
  • טעקע גרייס איז 50 גיגאבייט און וועט וואַקסן;
  • די דאַטאַבייס גרייס איז 3 גיגאבייט און וועט וואַקסן.

איך מיד יקסקלודיד די נאָרמאַל באַקאַפּ געבויט אין 1C-Bitrix. עס איז פּאַסיק בלויז פֿאַר קליין זייטלעך, ווייַל:

  • עס מאכט אַ פול קאָפּיע פון ​​​​דעם פּלאַץ יעדער מאָל, אַזוי יעדער קאָפּיע וועט נעמען די זעלבע פּלאַץ ווי די טעקעס נעמען אַרויף, אין מיין פאַל עס איז 50 גיגאבייט.
  • באַקקופּ איז דורכגעקאָכט מיט PHP, וואָס איז אוממעגלעך מיט אַזאַ וואַליומז פון טעקעס, עס וועט אָווערלאָאַד די סערווער און וועט קיינמאָל ענדיקן.
  • און פון קורס, עס קענען זיין קיין רעדן פון קיין 90 טעג ווען סטאָרינג אַ פול קאָפּיע.

די לייזונג וואָס אָפערט האָסטערדאָס איז אַ באַקאַפּ דיסק וואָס געפינט זיך אין דעם זעלבן דאַטן צענטער ווי די VDS, אָבער אויף אַן אַנדער סערווער. איר קענט צוקומען צום דיסק דורך FTP און נוצן אייערע אייגענע סקריפּטן, אָדער, אויב ISPManager איז אינסטאַלירט אויף די VDS, דורך זיין באַקאַפּ מאָדול. די אָפּציע איז נישט פּאַסיק ווייל עס ניצט דעם זעלבן דאַטן צענטער.

פֿון אַלע די אויבן, דער בעסטער ברירה פֿאַר מיר איז אַן ינקראַמענטאַל באַקאַפּ מיט מיין אייגענע שריפט אין Yandex.Cloud (אָבדזשעקט סטאָרידזש) אָדער Amazon S3 (אַמאַזאָן סימפּלע סטאָרידזש סערוויס).

דאס פארלאנגט:

  • וואָרצל אַקסעס צו VDS;
  • אינסטאַלירן דופּליסיטי נוצן;
  • חשבון אין Yandex.Cloud.

ינקרעמענטאַל באַקאַפּ - אַ מעטאָד אין וואָס בלויז דאַטן וואָס האָבן געביטן זינט די לעצטע באַקאַפּ איז אַרטשיוועד.

דופּליקאַט - אַ באַקאַפּ נוצן וואָס ניצט rsync אַלגערידאַמז און קענען אַרבעטן מיט Amazon S3.

Yandex.Cloud ווס Amazon S3

אין דעם פאַל, עס איז קיין חילוק צווישן Yandex.Cloud און Amazon S3 פֿאַר מיר. יאַנדעקס שטיצט די פאַרנעם פון די Amazon S3 API, אַזוי איר קענען אַרבעטן מיט עס מיט די סאַלושאַנז וואָס עקסיסטירן פֿאַר ארבעטן מיט S3. אין מיין פאַל, דאָס איז די דופּליסיטי נוצן.

דער הויפּט מייַלע פון ​​יאַנדעקס קען זיין צאָלונג אין רובל אויב עס איז אַ פּלאַץ פון דאַטן, עס וועט זיין קיין קשר צו דער וועקסל קורס. אין טערמינען פון גיכקייַט, אַמאַזאָן אייראפעישער דאַטן סענטערס אַרבעט פאַרגלייַכלעך צו רוסיש דאַטן סענטערס אין יאַנדעקס, למשל, איר קענען נוצן פראנקפורט. איך פריער געוויינט Amazon S3 פֿאַר ענלעך טאַסקס, איצט איך באַשלאָסן צו פּרובירן יאַנדעקס.

באַשטעטיקן Yandex.Cloud

1. איר דאַרפֿן צו שאַפֿן אַ צאָלונג חשבון אין Yandex.Cloud. צו טאָן דאָס, איר דאַרפֿן צו קלאָץ אין צו Yandex.Cloud דורך דיין יאַנדעקס חשבון אָדער שאַפֿן אַ נייַע.

2. שאַפֿן אַ "וואָלקן".
ינקרעמענטאַל VDS באַקאַפּ מיט אַ פּלאַץ אויף 1C-Bitrix אין Yandex.Cloud

3. אין די "וואָלקן" שאַפֿן אַ "קאַטאַלאָג".
ינקרעמענטאַל VDS באַקאַפּ מיט אַ פּלאַץ אויף 1C-Bitrix אין Yandex.Cloud

4. שאַפֿן אַ "סערוויס חשבון" פֿאַר די "קאַטאַלאָג".
ינקרעמענטאַל VDS באַקאַפּ מיט אַ פּלאַץ אויף 1C-Bitrix אין Yandex.Cloud

5. שאַפֿן שליסלען פֿאַר די "סערוויס אַקאַונט".
ינקרעמענטאַל VDS באַקאַפּ מיט אַ פּלאַץ אויף 1C-Bitrix אין Yandex.Cloud

6. היט די שליסלען, זיי וועלן זיין דארף אין דער צוקונפֿט.
ינקרעמענטאַל VDS באַקאַפּ מיט אַ פּלאַץ אויף 1C-Bitrix אין Yandex.Cloud

7. פֿאַר די "דירעקטאָרי" שאַפֿן אַ "עמער", טעקעס וועט גיין אין עס.
ינקרעמענטאַל VDS באַקאַפּ מיט אַ פּלאַץ אויף 1C-Bitrix אין Yandex.Cloud

8. איך רעקאָמענדירן באַשטעטיקן אַ שיעור און סעלעקטירן "קאַלט סטאָרידזש".
ינקרעמענטאַל VDS באַקאַפּ מיט אַ פּלאַץ אויף 1C-Bitrix אין Yandex.Cloud

באַשטעטיקן סקעדזשולד באַקאַפּס אויף די סערווער

דער פירער אַסומז יקערדיק אַדמיניסטראַציע סקילז.

1. ינסטאַלירן די דופּליסיטי נוצן אויף די VDS

yum install duplicity

2. שאַפֿן אַ טעקע פֿאַר mysql דאַמפּס, אין מיין פאַל עס איז / backup_db אין די VDS וואָרצל

3. שאַפֿן אַ טעקע פֿאַר באַש סקריפּס /backup_scripts און מאַכן דער ערשטער שריפט וואָס וועט דורכפירן באַקאַפּס /backup_scripts/backup.sh

סקריפּט אינהאַלט:

#!`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. לויפן די שריפט פֿאַר די ערשטער מאָל און קאָנטראָלירן די רעזולטאַט טעקעס זאָל דערשייַנען אין די "עמער".

`which bash` /backup_scripts/backup.sh

ינקרעמענטאַל VDS באַקאַפּ מיט אַ פּלאַץ אויף 1C-Bitrix אין Yandex.Cloud

5. לייג אַ שריפט צו קראַן פֿאַר דער וואָרצל באַניצער צו לויפן 2 מאל אַ טאָג, אָדער מיט די אָפטקייַט איר דאַרפֿן.

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

ריקאַווערינג דאַטן פֿון Yandex.Cloud

1. מאַכן אַ אָפּזוך טעקע /backup_restore

2. מאַכן אַ באַש שריפט פֿאַר אָפּזוך /backup_scripts/restore.sh

איך געבן די מערסט פאָלקס בייַשפּיל פון ריסטאָרינג אַ ספּעציפיש טעקע:

#!`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. לויפן די שריפט און וואַרטן פֿאַר די רעזולטאַט.

`which bash` /backup_scripts/backup.sh

אין די /backup_restore/ טעקע איר וועט געפֿינען די index.php טעקע וואָס איז געווען פריער באַקט אַרויף.

איר קענען מאַכן פיינער אַדזשאַסטמאַנץ צו דיין באדערפענישן.

מינוס דופּליקאַטיאָן

דופּליסיטי האט איין שטערונג - עס איז ניט מעגלעך צו שטעלן אַ קאַנאַל באַניץ שיעור. מיט אַ רעגולער קאַנאַל, דאָס איז נישט אַ פּראָבלעם, אָבער ווען איך נוצן אַ DDoS-פּראָטעקטעד קאַנאַל מיט גיכקייַט טשאַרדזשינג פּער טאָג, איך וואָלט ווי צו שטעלן אַ שיעור פון 1-2 מעגאַביץ.

ווי אַ מסקנא

באַקאַפּן צו Yandex.Cloud אדער Amazon S3 גיט אַן אומאָפּהענגיקע קאָפּיע פון ​​אייער וועבזייטל און אָפּערירן סיסטעם סעטטינגס וואָס קען זיין צוטריטלעך פון יעדן אַנדערן סערווער אדער לאָקאַלן קאָמפּיוטער. די קאָפּיע איז נישט קענטיק פֿאַר קיינעם. קאָנטראָל פּאַנאַלז האָסטינג, און אויך נישט אין די ביטריקס אַדמין פּאַנעל, וואָס גיט נאָך זיכערהייט.

אין די ערגסט פאַל, איר קענען אַסעמבאַל אַ נייַ סערווער און צעוויקלען דעם פּלאַץ אין קיין טאָג. כאָטש די מערסט פאָלקס פאַנגקשאַנאַליטי וועט זיין די פיייקייט צו אַקסעס אַ טעקע פֿאַר אַ ספּעציפיש דאַטע.

איר קענען נוצן דעם טעכניק מיט קיין VDS אָדער דעדיקאַטעד סערווערס און זייטלעך אויף קיין ענדזשאַנז, ניט נאָר 1C-Bitrix. די אַס קען אויך זיין אנדערע ווי CentOS, אַזאַ ווי ובונטו אָדער דעביאַן.

מקור: www.habr.com