Mihi opus est ut tergum situs in "2C-Bitrix: Site Management" (lima et mysql database) bis in die condere historiam mutationum per XC dies.
Situm in VDS currentem CentOS 7 OS cum 1C-Bitrix situm est: Interretialis Ambitus inauguratus est. Accedit, exemplum tergum fac occasus tui OS.
requisita:
- Frequentia - 2 times in day;
- Codices proximis XC diebus servant;
- Facultas obtinendi singulas tabulas ad certum diem, si opus sit;
- Tergum reponendum est in centrum datae praeter VDS;
- Facultas ad tergum alicunde accedere (alicui servo, locali computatori, etc.).
Magni momenti erat facultas tergum creandi cum minima consummatione spatii accessionis et subsidiorum systematis.
Hoc non est de snapshot cito systema totum restituendi, sed de files et datorum et historiarum mutationum.
Notitia initialis:
- VDS on XEN virtualization;
- OS CentOS 7;
- 1C-Bitrix: Ambitus interreti;
- Site based on "1C-Bitrix: Site Management", Standard version;
- Tabella magnitudo 50 GB et crescet;
- Magnitudo datorum 3 GB est et crescet.
Vexillum tergum in 1C-Bitrix constructum statim exclusi. Exiguis locis idoneus est, quod;
- Plenum exemplum situs omni tempore facit, uterque exemplar tantumdem spatii capiet quantum tabulae sumendae, in casu meo 50 GB.
- Tergum factum est utens PHP, quod cum talibus voluminibus imaginum impossibile est, hoc servo onerare et numquam finire potest.
- Et sane non potest esse sermo de ullis XC diebus in pleno exemplari actarum.
Solutio hostiarius offert orbis tergum in eodem centri notitia posito quod VDS est, sed in alio servo. Cum disco per FTP laborare potes et scriptis tuis utere, aut si ISPManager in VDS inauguratus est, per eius moduli tergum. Haec optio non convenit ex usu centri eiusdem notitiae.
Ex omnibus supradictis, optima electio mihi est incremental tergum utens scripto proprio in Yandex.Cloud (Object Storage) vel Amazon S3 (Amazon Simple Storage Service).
Hoc postulat;
- radix aditum VDS;
- inauguratus est duplicitatis utilitas;
- rationem apud Yandex.Cloud.
Incremental tergum - methodus in qua sola notitia quae mutata est cum novissimum tergum scrinium est.
fallaciaeque - utilitas tergum, qua rsync algorithmis utitur et cum Amazonibus S3. operari potest.
Yandex.Cloud vs Amazon S3
Nihil interest inter Yandex.Cloud and Amazon S3 in hoc casu pro me. Yandex Amazonum S3 API molem sustinet, ut cum ea operari potes utens solutionibus quae ad operandum cum S3 existunt. In me, haec est utilitas duplicitatis.
Praecipua utilitas Yandex mercedem in rublis esse potest, si data est sors, nulla nexus erit ad commutationem rate. Secundum velocitatem, Amazonum centra Europaea data operant comparabiles cum centris Russicis in Yandex, exempli gratia, Francofurto uti potes. Ego antea ad similia opera S3 Amazonia usus sum, nunc Yandex experiri decrevi.
Yandex.Cloud eriges
1. In Yandex.Cloud mercedem rationem creare debes. Hoc facere, debes Yandex.Cloud per tuum Yandex rationem vel novam creare.
2. Nubes crea.
3. In "Nube" creo "Catalogus".
4. Nam "Catalogus" creare "Servitium rationem".
5. Nam "Ratio Muneris" claves creant.
6. Serva claves, eas in futuro indigebis.
7. Pro "Catalogo" creare "Situla", fasciculi in illud cadent.
8. Commendo terminum constituendum et "Cold Repono".
Occasus tergum sursum profecta in calculonis servi
Hic dux basic artes administrationis assumit.
1. Instrue in VDS duplicitatis utilitatem
yum install duplicity
2. Facere folder pro mysql dumps, in casu meo est /backup_db in radice VDS
3. Facere folder pro bash scriptorum /backup_scripts et fac primum scriptum quod faciet tergum /backup_scripts/backup.sh
Scriptor contentus:
#!`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. Scriptum primum curre et eventum deprime, lima in "Situla" apparebit.
`which bash` /backup_scripts/backup.sh
5. Scriptum cron addere pro usuario radicis ad currendum 2 vicibus in die, vel cum frequentia debes.
10 4,16 * * * `which bash` /backup_scripts/backup.sh
Recuperandae notitia ex Yandex.Cloud
1. Fac restituo folder / backup_restore
2. Fac vercundus restituet litteras /backup_scripts/restitue.sh
Gratiam maxime do exemplo limae specificae restituendae:
#!`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. Curre scriptum et expecta exitum.
`which bash` /backup_scripts/backup.sh
In /backup_restore/ folder invenies index.php lima quae antea subnixa erat.
Recommodationes melius facere potes ad usus tuos aptandos.
minus duplicitate
Duplicitas unum incommodum habet - modus non est modus ut canalis usus. Cum canali regulari hoc problema non creat, sed cum canali DDoS protecto utens velociter per diem incurrens, limes 1-2 megabitarum imponere posse velim.
Conclusio
Tergum in Yandex.Cloud or Amazon S3 praebet exemplar sui iuris situs et OS occasus qui accedere possunt ab aliquo alio servo vel computatrum locali. Hoc autem exemplum non apparet vel in panelli potestate obnoxius vel in tabula admin Bitrix, quae securitatem tutiores praebet.
Pessimo in casu missionis, convenire potes novum cultorem et quovis tempore locum explicas. Quamvis popularis functionis facultas erit accessurum fasciculum ad certum diem.
Hac arte uti potes cum quibusvis VDS vel Dedicatis servitoribus ac sitibus in quibusvis machinis, non 1C-Bitrix. Potest etiam esse OS alius quam CentOS, ut Ubuntu vel Debian.
Source: www.habr.com