Найстройка backup.sh

Тема в разделе "Администрирование серверов", создана пользователем Den1a, 26 авг 2014.

  1. Den1a

    Den1a

    Регистрация:
    16 авг 2013
    Сообщения:
    27
    Симпатии:
    1
    Здравствуйте.
    Помогите, пожалуйста, правильно "составить" backup.sh для ежедневного резервного копирования.
    Нужно выполнять следующие команды:
    Код:
    # ищем файлы старше 2 суток и удаляем их
    find /backup/sql/plitla/ -mtime +2 -print -mindepth 1 -delete >/dev/null 2>&1find /backup/site/plitla/ -mtime +2 -print -mindepth 1 -delete >/dev/null 2>&1
    
    # Создаем бекап sql
    mysqldump -u ПОЛЬЗОВАТЕЛЬ -pПАРОЛЬ БАЗА > ~/backup/sql/plitla/plitka-`date +%Y-%m-%d`.sql
    
    # Создаем бекап файлов
    tar -cjvf ~/backup/site/plitka/plitka`date +%Y-%m-%d`.tar.bz2 ./htdocs.plitka.ksk.by
    Спасибо.
     
    Lasted edited by : 26 авг 2014
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.349
    Симпатии:
    1.380
    так в чём проблема?
    пихаете это в sh, а потом в crontab.

    добавляем строку в /etc/crontab:
    Код:
    0 0 * * * root (или пользователь ваш) /bin/sh /путь/к/backup.sh
    будет выполняться скрипт каждый день в 0 часов 0 минут.

    разве что, можно еще архивировать БД, чтобы занимало меньше места.
    вот так:
    Код:
    mysqldump -uuser -ppassword bdName | tar -jcvf > /куда_складывать.tar.bz2
     
  3. Den1a

    Den1a

    Регистрация:
    16 авг 2013
    Сообщения:
    27
    Симпатии:
    1
    Спасибо за ответ.

    Более полная настройка выглядит вот так:
    Код:
    #!/bin/bash
    #start backup
    echo "[ `date +%F--%H-%M` ]"
    #Deleting old copies
    /usr/bin/find /h/путь/ -mindepth 3 -not -mtime -2 -exec echo {} \;
    /usr/bin/find /h/путь/ -mindepth 3 -not -mtime -2 -exec rm {} \;
    echo "[ `date +%F--%H-%M` ] Old copies deleted."
    #MySQL dump
    mysqldump --user=пользователь --пароль=пароль база > /h/путь/база-`date +%F`.sql
    mysqldump --user=пользователь --pпароль=пароль база > /h/путь/база-`date +%F`.sql
    if [[ $? -gt 0 ]];then
      echo "[ `date +%F--%H-%M` ] Database backup failed."
      exit 1
    fi
    echo "[ `date +%F--%H-%M` ] Databases backup successfull."
    /bin/gzip /h/путь/*.sql
    /bin/gzip /h/путь/*.sql
    #File dump
    tar -czpf /h/путь/имя архива-`date +%F`.tar.gz /h/путь 2> /dev/null
    tar -czpf /h/путь/имя архива-`date +%F`.tar.gz /h/путь 2> /dev/null
    if [[ $? -gt 0 ]];then
      echo "[ `date +%F--%H-%M` ] Copying files failed."
      exit 1
    fi
    echo "[ `date +%F--%H-%M` ] Coping of files successfull."
    exit 0
     
    Lasted edited by : 7 сен 2014