ืืื ืื ืฆืืจื ืืืืืช ืืช ืืืชืจ ื-2C-Bitrix: ื ืืืื ืืชืจืื 1 ืคืขืืื ืืืื (ืงืืฆืื ืืืกื ื ืชืื ืื ืฉื mysql) ืืืืืกื ืืืกืืืจืืืช ืฉืื ืืืื ืืืฉื 90 ืืื.
ืืืชืจ ืืืืงื ืขื VDS ืืืจืืฅ CentOS 7 ืขื "1C-Bitrix: Web Environment" ืืืชืงื. ืื ืืกืฃ, ืฆืืจ ืขืืชืง ืืืืื ืฉื ืืืืจืืช ืืขืจืืช ืืืคืขืื.
ืืจืืฉืืช:
- ืชืืืจืืช - 2 ืคืขืืื ืืืื;
- ืฉืืืจ ืขืืชืงืื ืขืืืจ 90 ืืืืื ืืืืจืื ืื;
- ืืืืืืช ืืงืื ืงืืฆืื ืืืืืื ืืชืืจืื ืืกืืื, ืืืืืช ืืฆืืจื;
- ืืืืืื ืืืื ืืืืืช ืืืืืกื ืืืจืื ื ืชืื ืื ืฉืืื ื VDS;
- ืืืืืืช ืืืฉืช ืืืืืื ืืื ืืงืื (ืฉืจืช ืืืจ, ืืืฉื ืืงืืื ืืื').
ื ืงืืื ืืฉืืื ืืืืชื ืืืืืืช ืืืฆืืจ ืืืืืืื ืืืืืจืืช ืชืื ืฆืจืืื ืืื ืืืืืช ืฉื ืฉืื ืืืฉืืื ืืขืจืืช ื ืืกืคืื.
ืื ืืืืืจ ืขื ืชืืื ืช ืืฆื ืืฉืืืืจ ืืืืจ ืฉื ืืืขืจืืช ืืืื, ืืื ืขื ืงืืฆืื ืืืกื ืื ืชืื ืื ืืืืกืืืจืืืช ืืฉืื ืืืื.
ื ืชืื ืื ืจืืฉืื ืืื:
- VDS ืขื ืืืจืืืืืืืฆืื ืฉื XEN;
- OS CentOS 7;
- 1C-Bitrix: ืกืืืืช ืืื ืืจื ื;
- ืืชืจ ืืืืกืก ืขื "1C-Bitrix: ื ืืืื ืืชืจ", ืืจืกื ืกืื ืืจืืืช;
- ืืืื ืืงืืืฅ ืืื 50 GB ืืืื ืืืื;
- ืืืื ืืกื ืื ืชืื ืื ืืื 3 GB ืืืื ืืืื.
ืืืืื ืกืื ืืจืื ืืืื ื ื-1C-Bitrix - ืื ื ืืื ืืืืคื ืืืืื. ืื ืืชืืื ืจืง ืืืชืจืื ืงืื ืื, ืื:
- ืขืืฉื ืขืืชืง ืฉืื ืฉื ืืืชืจ ืืื ืคืขื, ืืืชืืื, ืื ืขืืชืง ืืชืคืืก ืืงืื ืืื ืฉืื ื ืชืืคืก ืืช ืืงืืฆืื, ืืืงืจื ืฉืื ืื 50 GB.
- ืืืืืื ื ืขืฉื ืืืืฆืขืืช PHP, ืืืจ ืืืชื ืืคืฉืจื ืขื ื ืคืืื ืืืื ืฉื ืงืืฆืื, ืื ืืขืืืก ืขื ืืฉืจืช ืืื ืืืืืจ ืืขืืื.
- ืืืืืื, ืื ืืคืฉืจ ืืืืจ ืขื 90 ืืืื ืืืฉืื ืืขืช ืืืกืื ืขืืชืง ืืื.
ืืคืชืจืื ืฉืืืืจื ืืฆืืข ืืื ืืืกืง ืืืืื ืฉื ืืฆื ืืืืชื ืืจืื ื ืชืื ืื ืืื ื-VDS, ืื ืืฉืจืช ืืืจ. ืืชื ืืืื ืืขืืื ืขื ืืืืกืง ืืืืฆืขืืช FTP ืืืืฉืชืืฉ ืืกืงืจืืคืืื ืืฉืื, ืื ืื ISPManager ืืืชืงื ืขื ื-VDS, ืื ืืจื ืืืืื ืืืืืื ืฉืื. ืืคืฉืจืืช ืื ืืื ื ืืชืืืื ืขืงื ืืฉืืืืฉ ืืืืชื ืืจืื ื ืชืื ืื.
ืืื ืืืืืจ ืืขืื, ืืืืืจื ืืืืื ืืืืชืจ ืขืืืจื ืืื ืืืืื ืืฆืืืจ ืืคื ืืชืจืืืฉ ืฉืื ื-Yandex.Cloud (Object Storage) ืื Amazon S3 (Amazon Simple Storage Service).
ืื ืืืจืฉ:
- ืืืฉืช ืฉืืจืฉ ื-VDS;
- ืืืชืงื ืฉืืจืืช ืืคืืืืช;
- ืืฉืืื ื-Yandex.Cloud.
ืืืืื ืืฆืืืจ - ืฉืืื ืฉืื ืืืืืกื ืื ืืืจืืืื ืจืง ื ืชืื ืื ืฉืืฉืชื ื ืืื ืืืืืื ืืืืจืื.
ืืคืืืืช - ืืื ืืืืื ืืืฉืชืืฉ ืืืืืืจืืชืืื ืฉื rsync ืืืืื ืืขืืื ืขื Amazon S3.
Yandex.Cloud ืืื Amazon S3
ืืื ืืืื ืืื Yandex.Cloud ืืืืืื S3 ืืืงืจื ืืื ืขืืืจื. Yandex ืชืืื ืืืืง ืืขืืงืจื ืฉื ื-API ืฉื Amazon S3, ืื ืฉืชืืื ืืขืืื ืืืชื ืืืืฆืขืืช ืืคืชืจืื ืืช ืืืืื ืื ืืขืืืื ืขื S3. ืืืงืจื ืฉืื, ืื ืืื ืืฉืืจืืช ืืืคืื.
ืืืชืจืื ืืขืืงืจื ืฉื Yandex ืืืื ืืืืืช ืชืฉืืื ืืจืืื, ืื ืืฉ ืืจืื ื ืชืื ืื, ืื ืื ืืืื ืงืืฉืืจ ืืงืืจืก. ืืืืื ืช ืืืืจืืช, ืืจืืื ืื ืชืื ืื ืืืืจืืคืืื ืฉื ืืืืื ืขืืืืื ืืืชืื ืืืจืืื ืื ืชืื ืื ืืจืืกืืื ืืืื ืืงืก, ืืืฉื, ืืชื ืืืื ืืืฉืชืืฉ ืืคืจื ืงืคืืจื. ืืฉืชืืฉืชื ืืขืืจ ืืืืืื S3 ืขืืืจ ืืฉืืืืช ืืืืืช, ืืขืช ืืืืืชื ืื ืกืืช ืืช Yandex.
ืืืืจืช Yandex.Cloud
1. ืขืืื ืืืฆืืจ ืืฉืืื ืืืื ื-Yandex.Cloud. ืืื ืืขืฉืืช ืืืช, ืขืืื ืืืชืืืจ ื-Yandex.Cloud ืืจื ืืฉืืื Yandex ืฉืื ืื ืืืฆืืจ ืืฉืืื ืืืฉ.
2. ืฆืืจ ืขื ื.
3. ื"ืขื ื" ืฆืืจ "ืงืืืื".
4. ืขืืืจ "ืงืืืื" ืฆืืจ "ืืฉืืื ืฉืืจืืช".
5. ืขืืืจ "ืืฉืืื ืฉืืจืืช" ืฆืืจ ืืคืชืืืช.
6. ืฉืืืจ ืืช ืืืคืชืืืช, ืชืฆืืจื ืืืชื ืืขืชืื.
7. ืขืืืจ "ืงืืืื" ืฆืืจ "ืืื", ืงืืฆืื ืืืคืื ืืชืืื.
8. ืื ื ืืืืืฅ ืืืืืืจ ืืืืื ืืืืืืจ ื"ืืืกืื ืงืจ".
ืืืืจืช ืืืืืืื ืืชืืืื ืื ืืฉืจืช
ืืืจืื ืื ืื ืื ืืืฉืืจื ื ืืืื ืืกืืกืืื.
1. ืืชืงื ืืช ืชืืื ืืช ืืฉืืจืืช ืืืคืืืืช ื-VDS
yum install duplicity
2. ืฆืืจ ืชืืงืืื ื-mysql dumps, ืืืงืจื ืฉืื ืื /backup_db ืืฉืืจืฉ VDS
3. ืฆืืจ ืชืืงืืื ื-bash scripts /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. ืืคืขื ืืช ืืกืงืจืืคื ืืคืขื ืืจืืฉืื ื ืืืืืง ืืช ืืชืืฆืื, ืืงืืฆืื ืืืืจืื ืืืืคืืข ื-Bucket.
`which bash` /backup_scripts/backup.sh
5. ืืืกืฃ ืกืงืจืืคื ื-cron ืขืืืจ ืืฉืชืืฉ ืืฉืืจืฉ ืฉืืืืฆืข 2 ืคืขืืื ืืืื, ืื ืืชืืืจืืช ืฉืชืฆืืจื.
10 4,16 * * * `which bash` /backup_scripts/backup.sh
ืฉืืืืจ ื ืชืื ืื ื-Yandex.Cloud
1. ืฆืืจ ืชืืงืืืช ืฉืืืืจ /backup_restore
2. ืืคืื ืืช ื-bash restore script /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 ืืกืคืง ืขืืชืง ืขืฆืืื ืฉื ืืืืจืืช ืืืชืจ ืืืขืจืืช ืืืคืขืื ืฉื ืืชื ืืืฉืช ืืืื ืืื ืฉืจืช ืืืจ ืื ืืืฉื ืืงืืื. ืืื ืขื ืืืช, ืขืืชืง ืื ืืื ื ืืืื ืื ืืืื ืืืงืจื ืฉื ืืืืจืื ืื ืืคืื ื ืื ืืืื ืฉื Bitrix, ืื ืฉืืกืคืง ืืืืื ื ืืกืคืช.
ืืชืืฆืื ืืืฆืขืจืช ืืืืชืจ, ืืชื ืืืื ืืื ืืช ืฉืจืช ืืืฉ ืืืคืจืืก ืืช ืืืชืจ ืืื ืชืืจืื. ืืืจืืช ืฉืืคืื ืงืฆืืื ืืืืช ืืืืืงืฉืช ืืืืชืจ ืชืืื ืืืืืืช ืืืฉืช ืืงืืืฅ ืืชืืจืื ืืกืืื.
ืืชื ืืืื ืืืฉืชืืฉ ืืืื ืืงื ืื ืขื ืื VDS ืื ืฉืจืช ืืืชืจืื ืืืขืืืืื ืืื ืื ืืขืื, ืื ืจืง 1C-Bitrix. ืืขืจืืช ืืืคืขืื ืืืืื ืืืืืช ืื ืืืจืช ืืืฉืจ CentOS, ืืืื ืืืืื ืื ืื ืืืืื.
ืืงืืจ: www.habr.com