Друзья , добрый день. Упустил сделать описание такого важного момента как РЕЗЕРВНОЕ КОПИРОВАНИЕ.
Какими бы надежными не были системы от программной ошибки никто не застрахован от программной ошибки \от отказа железа\от вирусов\и прочих обстоятельств.
Что нам нужно для восстановления сервиса и в какие сроки нам нужно его восстановить, можно ли останавливать сервисы для копирования .. -эти вопросы и определяют режимы резервного копирования.
они определяют размер копии и средства резервного копирования
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-го варианта
Смотрите далее будет интереснее - можно написать мне, что бы вы хотели увидеть на моем канале На главную - все части в общим списком