Backup данных на 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 минут.
Здравствуйте. Спасибо за скрипт и за «разжевывание» — очень помогли)
Есть одно НО — копирует только пути, тоесть на выходе у меня получается — папка с кучей вложеных папок внутри, но все они пустые. Пытаюсь таким образом забекапить папку с файлами(doc, ppt, flv и пр.) не подскажите в чем может быть проблема?
Спасибо
Честно говоря затрудняюсь с ответом. На всякий случай проверил свои бекапы, но там всё как положено — и файлы и директории.
еще раз все перепроверил.
Все работает, еще раз спасибо. Но вот tar делает архивную копию размером 727450Kb, а файлов у меня на 20 гигов( соответственно что-то он архивирует, а что-то нет — просто сохраняет директории и пути к ним. возможно это из-за каких-либо ограничений самого tar? не сталкивались с таким?
Вопрос отпал — не правильно примонтировал диск)
Слава Богу, что нашли причину. Желаю успехов в дальнейшем использовании!
я опять к Вам по пристаю)
понадобилось мне восстановить бекап за определенное число. Распаковываю архив и заменяю /etc и /usr/locale/etc. Выставляю необходимые права, а дальше что необходимо сделать? просто с «новыми» /etc и /usr/locale/etc при загрузке вылетает init:can’t exec getty ‘/usr/libexec/getty’ on port ttyv0 No such file or directory
и в систему не войти. буду признателен если расскажете как все правильно сделать. Спасибо
Есть предположение, что дело в порядке загрузки с винтов или в монтировании. Вот здесь обсуждают похожие симптомы — http://www.pcbsd.ru/forum/index.php?topic=2184.0 Там правда фигурирует pc-bsd 1.5.1, но думаю общее направление поисков правильное.
От себя скажу, что лично мне пока не приходилось восстанавливать систему из бекапа, сервер боевой, так что проверить не представляется возможным. А вот достать удаленные файлы из папок пользователей проблем не было, собственно для этого бекап и делаю.
Как бы теперь этот архивчик по почте отправить?
Не задавался таким вопросом. Но думаю примеры найти можно.