воскресенье, 20 февраля 2011 г.

Улучшенный скрипт резервирования базы данных и шаблонов для Паруса 7

#!/bin/bash

# Backup script version 0.2
#backup_parus_base.sh
#author: XliN
#site: http://saikov.org.ru
#mail: saikov.vb@gmail.com

SOURCE_BACKUP_DIR="/var/log/"                           # Указываем путь что будем бекапить
BACKUP_DIR_PARUS="/root/script/backup/"                 # Папка куда складывается бекап на сервере
SOURCE_DIR_SHABLON="/var/log/"                          # Папка к шаблонам Паруса
BACKUP_DIR_SHABLON="/root/script/backup/shablon/"       # Где будут лежать бекапы шаблонов
COPY_DIR="/root/script/backup_mirror/"                  # Куда потом копировать с сервера готовый бекап (зеркалирование)
LOG_FILE="/var/log/backup_test.log"                     # Путь к файлу лога

function backup_parus()
{
if [ ! $(date +%w) = 6 ] && [ ! $(date +%w) = 0 ]; then
       tar -czf ${BACKUP_DIR_PARUS}parus-`date "+%Y-%m-%d"`.tar.gz $SOURCE_BACKUP_DIR
       cp ${BACKUP_DIR_PARUS}parus* $COPY_DIR
       echo "`date` Backup Parus database in $COPY_DIR successfully" >> $LOG_FILE
else
   echo "`date` Backup базы Паруса не выполнен, т.к. сегодня $(date +%A)" >> $LOG_FILE
fi
}

function backup_shablon(){
if [ $(date +%d) = 01 ]; then
    tar -czf ${BACKUP_DIR_SHABLON}shablon-`date "+%Y-%m-%d"`.tar.gz $SOURCE_DIR_SHABLON
    cp ${BACKUP_DIR_SHABLON}shablon* $COPY_DIR
    echo "`date` Backup шаблонов выполнен, т.к. сенодня 1 чило нового месяца" >> $LOG_FILE
fi
}


if [ -d "$SOURCE_BACKUP_DIR" ] && [ -d "$COPY_DIR" ] && [ -d "$BACKUP_DIR_PARUS" ] && [ -d "$BACKUP_DIR_SHABLON" ]; then
        echo "`date` Пути к папкам найдены..." >> $LOG_FILE;
        backup_parus
        backup_shablon
        exit 1
        else
            echo "`date` Указанные пути к папкам не существуют, будут созданы автоматически" >> $LOG_FILE
            mkdir -p $COPY_DIR
            mkdir -p $BACKUP_DIR_PARUS
            mkdir -p $BACKUP_DIR_SHABLON
            backup_parus
            backup_shablon
            exit 1
fiSyhi-подсветка кода