Документ создан: 28.09.2010

Резервирование выборочных данных

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

  • Имеются один или более файлов, названных по принципу "_backup_systemconfig.list", содержащие список каталогов и/или файлов, которые необходимо резервировать. В имени файла главное — начало на "_" и окончание на ".list".
  • Имеется скрипт, который считывает список файлов по шаблону предыдущего пункта с добавлением текущей даты и формирует упакованный архив, содержащий в себе объекты резервирования, перечисленные в файле (для предыдущего примера — "backup_systemconfig_20100928.tar.bz2"), после чего, удаляет файл пятинедельной давности.

Файл, содержащий список объектов резервирования, выглядит так:

/etc/apt
/etc/mc/mc.ext
/etc/network/interfaces
/etc/samba
/etc/squid
/etc/ssh
/etc/hosts

Сам скрипт выглядит так:

backup.sh
#!/bin/bash
 
execdir=/media/disk1/backup
outdir=${execdir}
oldday=$(date --date='-5 week' +'%Y%m%d')
today=$(date +'%Y%m%d')
 
for i in _*.list
do
        type=${i/.list/}
        newfile="${type/_/}_${today}.tar.bz2"
        oldfile="${type/_/}_${oldday}.tar.bz2"
        tar -jpc -T ${execdir}/${i} -f ${outdir}/${newfile}
        if [ $? -eq 0 ];then
                if [ -e ${oldfile} ];then
                        rm -f ${oldfile}
                fi
        fi
done
  • execdir — каталог, откуда старует скрипт. Там же должны лежать файлы, содержащие объекты резервирования;
  • outdir — каталог, где будут создаваться архивы.
  • oldday — дата, отстоящая от текущей, на 5-ть недель. Параметр "--date" можно изменить, например, на --date='-5 day', что даст нам дату, отстоящую от текущей на 5-ть дней. Тут уж на ваш выбор.
  • today — сегодняшняя дата

Выполняя этот скрипт раз в неделю, будем иметь архивы за четыре недели.

Вот, в общем-то, и всё. Пользуйтесь. Если возникнут вопросы, адрес электронной почты — на главной.

 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Donate