Backup данных на FreeBSD по расписанию

Ноя 28, 2010 FreeBSD

Опишу небольшой скрипт для резервного копирования данных и общий ход его применения. Для начала создадим файл, в котором будет хранится скрипт:

# touch backup

Делаем его исполняемым:

# chmod 700 backup

Добавляем в файл команды. Так как скрипт будет запускаться по crontab, в котором нет переменной окружения $PATH, то прописываем полные пути к нужным файлам.

#!/bin/sh

FILE="/etc /usr/local/etc /usr/home /var/db/mysql"
NAME=`/bin/date '+%Y%m%d'`
tar -cPzf /mnt/backup/${NAME}.tar.gz ${FILE}

 

Теперь пояснения к скрипту. В переменной FILE задаются пути к папкам подлежащим копированию. Переменная NAME задает вид имени будущего архива. В данном случае имя будет состоять из года, месяца и дня в который осуществляется копирование. Примерный вид — 20101128.tar.gz.

В последней строчке команде tar указывается с помощью ключей, что файлы нужно не только объединить, но и сжать. Затем указывается путь КУДА записывать архив /mnt/backup/${NAME}.tar.gz и ОТКУДА копировать ${FILE}

Остается последний штрих — внести выполнение данного скрипта в расписание. Для этого вызываем команду crontab -e и вписываем следующую строчку:

#backup
20    4    *    *    7    /usr/home/scripts/backup

В данном примере скрипт будет запускаться каждую субботу в 4 часа 20 минут. 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

13 комментарий к «Backup данных на FreeBSD по расписанию»
      1. дамп БД делается соответствующими утилитами
        Такой архив бесполезен ибо он не работает

        1. Тем не менее бекапы срабатывали когда нужно было восстановить испорченные таблицы. Файлы просто заливались поверх имеющихся.

  1. я опять к Вам по пристаю)
    понадобилось мне восстановить бекап за определенное число. Распаковываю архив и заменяю /etc и /usr/locale/etc. Выставляю необходимые права, а дальше что необходимо сделать? просто с «новыми» /etc и /usr/locale/etc при загрузке вылетает init:can’t exec getty ‘/usr/libexec/getty’ on port ttyv0 No such file or directory
    и в систему не войти. буду признателен если расскажете как все правильно сделать. Спасибо

    1. Есть предположение, что дело в порядке загрузки с винтов или в монтировании. Вот здесь обсуждают похожие симптомы — http://www.pcbsd.ru/forum/index.php?topic=2184.0 Там правда фигурирует pc-bsd 1.5.1, но думаю общее направление поисков правильное.

      От себя скажу, что лично мне пока не приходилось восстанавливать систему из бекапа, сервер боевой, так что проверить не представляется возможным. А вот достать удаленные файлы из папок пользователей проблем не было, собственно для этого бекап и делаю.

  2. Слава Богу, что нашли причину. Желаю успехов в дальнейшем использовании!

  3. еще раз все перепроверил.
    Все работает, еще раз спасибо. Но вот tar делает архивную копию размером 727450Kb, а файлов у меня на 20 гигов( соответственно что-то он архивирует, а что-то нет — просто сохраняет директории и пути к ним. возможно это из-за каких-либо ограничений самого tar? не сталкивались с таким?

  4. Честно говоря затрудняюсь с ответом. На всякий случай проверил свои бекапы, но там всё как положено — и файлы и директории.

  5. Здравствуйте. Спасибо за скрипт и за «разжевывание» — очень помогли)
    Есть одно НО — копирует только пути, тоесть на выходе у меня получается — папка с кучей вложеных папок внутри, но все они пустые. Пытаюсь таким образом забекапить папку с файлами(doc, ppt, flv и пр.) не подскажите в чем может быть проблема?
    Спасибо

Добавить комментарий для Kirill Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: