Lipetsk *nix Association Forum Lipetsk *nix Association Forum
Новости:
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
21 Ноября 2024, 20:14:01


Войти


Страниц: [1]   Вниз
  Печать  
Автор Тема: скрипт бэкапа  (Прочитано 11504 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Yazichnik
Небритый одмин
*****

Карма: 8
Сообщений: 710

Mac OS X, Debian

ОС:
Linux (Ubuntu) Linux (Ubuntu)
Браузер:
Firefox 3.6.10 Firefox 3.6.10


Награды
« : 30 Сентября 2010, 13:02:13 »

Тухлыми помидорами и прочими продуктами жизнедеятености не закидывать!

Задача: создать систему резервного копирования баз 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
Записан
Akela
Продвинутый
***

Карма: -4
Сообщений: 219


CalculateLinux 10.0

ОС:
Linux (Ubuntu) Linux (Ubuntu)
Браузер:
Firefox 3.6.10 Firefox 3.6.10


Награды
« Ответ #1 : 06 Октября 2010, 23:01:13 »

Работает?
Записан

я здесь не потому, что люблю Linux, а потому что ненавижу Windows...
Yazichnik
Небритый одмин
*****

Карма: 8
Сообщений: 710

Mac OS X, Debian

ОС:
Linux (Ubuntu) Linux (Ubuntu)
Браузер:
Firefox 3.6.10 Firefox 3.6.10


Награды
« Ответ #2 : 06 Октября 2010, 23:08:16 »

работает
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM