метка: sh

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 минут.