Тухлыми помидорами и прочими продуктами жизнедеятености не закидывать!
Задача: создать систему резервного копирования баз 1с расположенных на никсовом сервере с возможности автоматической их очистки с сохранением копий базы за отдельные числа месяца.
В результате родился вот такой кошмарик:
#!/bin/sh
# перенести скрипт в /usr/local/bin
# дописать в crontab
##minute (0-59),
##| hour (0-23),
##| | day of the month (1-31),
##| | | month of the year (1-12),
##| | | | day of the week (0-6 with 0=Sunday).
##| | | | | commands
#00 18 * * * /usr/local/bin/backup >> /var/log/backups.log
# начало работы
/bin/date >> /home/admin/backups.log
DATE=$(date +%F)
PATCHTOSAVE1=/mnt/base/wine/ZARPLATA
PATCHTOSAVE2=/mnt/base/wine/BUHGALTER
PATCHTOSAVE3=/mnt/base/wine/alex/исходные/образцы/ЕТС\ Образец
PATCHTOSAVE4=/mnt/base/wine/alex/исходные/образцы/ЗМЭС\ Образец
PATCHTOSAVE5=/mnt/base/wine/alex/исходные/образцы/образец\ ктэ
PATCHTOSAVE6=/mnt/base/wine/alex/исходные/образцы/юмес\ образец
PATCHTOSAVE7=/mnt/base/wine/alex/исходные/образцы/данков/Бух
PATCHSAVE=/mnt/backup/operating/
SAVECOPY=/mnt/backup/save/
mkdir $PATCHSAVE$DATE
# делаем архивные копии
7z a $PATCHSAVE$DATE/zarplata.7z $PATCHTOSAVE1
7z a $PATCHSAVE$DATE/buhgalteriya.7z $PATCHTOSAVE2
7z a $PATCHSAVE$DATE/etc.7z $PATCHTOSAVE3
7z a $PATCHSAVE$DATE/zmes.7z $PATCHTOSAVE4
7z a $PATCHSAVE$DATE/kte.7z $PATCHTOSAVE5
7z a $PATCHSAVE$DATE/umes.7z $PATCHTOSAVE6
7z a $PATCHSAVE$DATE/des.7z $PATCHTOSAVE7
# меняем владельца и группу
chown -c -v -R admin admin $PATCHSAVE$DATE/
# меняем права доступа на файл
chmod -c -v -R 770 $PATCHSAVE$DATE/
#------очистка старых файлов backup--------
day=$(date +%d)
#задаем условие и копируем нужные нам файлы в отдельную папку
if (($day==01))
then cp -r $PATCHSAVE$DATE $SAVECOPY
fi
if (($day==05))
then cp -r $PATCHSAVE$DATE $SAVECOPY
fi
if (($day==14))
then cp -r $PATCHSAVE$DATE $SAVECOPY
fi
if (($day==16))
then cp -r $PATCHSAVE$DATE $SAVECOPY
fi
if (($day==25))
then cp -r $PATCHSAVE$DATE $SAVECOPY
fi
if (($day==30))
then cp -r $PATCHSAVE$DATE $SAVECOPY
fi
#ищем и удаляем файлы старше 31 дня
find $PATCHSAVE -mtime +31 -type d | xargs rm -f
echo "окончание операции резервного копирования" >> /home/admin/backups.log