#!/bin/sh
## Папка, которую будем сканить
dir="/srv/backups"
## Сервер Zabbix
zabbixsrv="mc.efsol.ru"
## Получаем массив из всех директорий ежедневных бэкапов в нашей корневой папке
dailylist=`find $dir -type d -iname *daily* -print`
## Получаем массив из всех директорий еженедельных бэкапов в корневой папке
weeklylist=`find $dir -type d -iname *weekly* -print`
## Получаем массив из всех директорий ежемесячных бэкапов в корневой папке
monthlylist=`find $dir -type d -iname *monthly* -print`
## Получаем массив из всех директорий системных бэкапов в корневой папке
systemlist=`find $dir -type d -iname *system* -print`
## Затираем предыдущий лог
echo "" > /root/backupinspect.log
## Проверяем для каждой папки с дневными бэкапами, что в ней присутствуют файлы
## не старше 1 дня и не меньше 1 мбайта
for curdir in $dailylist; do
count=`find $curdir -type f -mtime -2 -size +1M | wc -l`
if [ $count -eq 0 ]; then
echo "Trouble in daily folder: $curdir" >> /root/backupinspect.log
fi
done
## Проверяем для каждой папки с недельными бэкапами, что в ней присутствуют файлы
## не старше 8 дней и не меньше 1 мбайта
for curdir in $weeklylist; do
count=`find $curdir -type f -mtime -8 -size +1M | wc -l`
if [ $count -eq 0 ]; then
echo "Trouble in weekly folder: $curdir" >> /root/backupinspect.log
fi
done
## Проверяем для каждой папки с месячными бэкапами, что в ней присутствуют файлы
## не старше 32 дней и не меньше 1 мбайта
for curdir in $monthlylist; do
count=`find $curdir -type f -mtime -32 -size +1M | wc -l`
if [ $count -eq 0 ]; then
echo "Trouble in monthly folder: $curdir" >> /root/backupinspect.log
fi
done
## Проверяем для каждой папки с бэкапами системы, что в ней присутствуют файлы
## не старше 32 дней и не меньше 1 мбайта
for curdir in $systemlist; do
count=`find $curdir -type f -mtime -32 -size +1M | wc -l`
if [ $count -eq 0 ]; then
echo "Trouble in system folder: $curdir" >> /root/backupinspect.log
fi
done