Per aspera ad astra

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

# 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 по расписанию

  • Kirill говорит:

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

  • admin говорит:

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

  • Kirill говорит:

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

  • admin говорит:

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

  • Kirill говорит:

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

    • admin говорит:

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

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

      • Aleks говорит:

        дамп БД делается соответствующими утилитами
        Такой архив бесполезен ибо он не работает

        • admin говорит:

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

Добавить комментарий

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

Свежие комментарии
Фотографии из жизни
Яма Исследуем яму Праздник в честь основания Советского района города Орска. 24 июня 2012 года. Байкеры на площади Шевченко. 14 июля 2012 года День железнодорожника. 4 август 2012 года День Советского района города Орска. 8 июня 2013 года
Подписаться через почту
Подписка