Найти тему
Raspberry pi /Arduino/Smart_Home

20 -резервное копирование

Друзья , добрый день. Упустил сделать описание такого важного момента как РЕЗЕРВНОЕ КОПИРОВАНИЕ.

Какими бы надежными не были системы от программной ошибки никто не застрахован от программной ошибки \от отказа железа\от вирусов\и прочих обстоятельств.

Что нам нужно для восстановления сервиса и в какие сроки нам нужно его восстановить, можно ли останавливать сервисы для копирования .. -эти вопросы и определяют режимы резервного копирования.

они определяют размер копии и средства резервного копирования

1- восстановление сервиса должно быть в течении 1-2 дней - остановка сервисов на момент копирования не критична. - здесь можно сделать пофайловое копирование с сжатием файлов с последующим сжатием

2 - восстановление сервиса должно быть максимально быстрым - остановка сервисов на момент копирования не критична. - Этот вариант требует достаточно много свободного места

3- восстановление сервиса должно быть максимально быстрым - остановка сервисов на момент копирования не приемлема. - это наиболее правильный вариант и для резервного копирования требуется 2 малинки.

Рассмотрим 1 вариант:

Копирование на диск , на котором установлена ОС - не верное решение - необходим внешний носитель- USB флешка или USB переносной диск.

пример установки флешики  в качестве резервного носителя
пример установки флешики в качестве резервного носителя

и так мы должны определить какие файлы нужны для восстановления работы . в нашем случае это:

/usr/share/zabbix - файлы скриптов заббикса

/etc - файлы конфигураций и настоек ОС

/backup - папка резервного копирования БД

/var/spool/cron/crontabs/ - планировщик заданий

/var/lib/grafana/ - файлы и БД - Grafana

Далле нужно подключение диска для рез копий в директорию

mount /dev/sda1 /media/backup - монтирование внешнего носителя

mysqldump -u zabbix --password='password' zabbix >zabbix.sql - резервное копирование Базы zabbix

теперь собираем все в один скрипт

-- Начало скрипта

#!/bin/bash

mount /dev/sda1 /media/backup

sleep 5

BK_GLOBAL=/backup/backup_os

find $BK_GLOBAL/* -type f -mtime +1 -exec rm -rf {} \;

find /backup/backup_os/ -type f -mmin +1 -print -delete

find $BK_GLOBAL/* -type d -name "*" -empty -delete

DAY=`date +%Y%m%d`

BK_GLOBAL=/backup/backup_os

BK_DIR=$BK_GLOBAL/Zabbix_$DAY

set_date ()

{

DT=`date "+%y%m%d %H:%M:%S"`

}

mkdir $BK_DIR

mysqldump -u zabbix --password='password' zabbix >$BK_DIR/zabbix_$DAY.sql

tar -cf $BK_DIR/zabbix_files_$DAY.tar /usr/share/zabbix

tar czf $BK_DIR/etc.tar.gz /etc

tar czf $BK_DIR/backup_folders.tar.gz /backup

tar czf $BK_DIR/cron_root.tar.gz /var/spool/cron/crontabs/

tar czf $BK_DIR/grafana.tar.gz /var/lib/grafana/

mount /dev/sda1 /media/backup

sleep 5

cd /media/backup

sleep 5

mkdir Zabbix_$DAY

mount /dev/sda1 /media/backup

sleep 5

cd /media/backup

sleep 5

mkdir Zabbix_$DAY

cp $BK_DIR/*.* /media/backup/Zabbix_$DAY/

BK_GLOBAL=/backup/backup_os

find $BK_GLOBAL/* -type f -mtime +1 -exec rm -rf {} \;

find $BK_GLOBAL/* -type d -name "*" -empty -delete

BK_GLOBAL=/media/backup

find $BK_GLOBAL/ -type f -mtime +17 -exec rm -f {} \;

find $BK_GLOBAL/* -type d -name "*" -empty -delete

--- Конец скрипта первого варианта

Для второго варианта копирования --

--Начало 2-го варианта скрипта

#!/bin/bash

mount /dev/sda1 /media/backup

sleep 5

DAY=`date +%Y%m%d`

BK_GLOBAL=/backup/backup_os

BK_DIR=$BK_GLOBAL/Zabbix_$DAY

set_date ()

{

DT=`date "+%y%m%d %H:%M:%S"`

}

dd if=/dev/mmcblk0 of=/media/backup/dd_backup_$DAY.img bs=4M status=progress conv=noerror

sudo /backup/pishrink.sh -z /media/backup/dd_backup_$DAY.img

-- конец 2-го варианта

Смотрите далее будет интереснее - можно написать мне, что бы вы хотели увидеть на моем канале На главную - все части в общим списком