The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Создание инкрементального архива с помощью утилиты tar
В самом простом виде инкрементальный архив с помощью tar делается так:

   tar --create --file=`date +%s`.tbz2 --bzip --listed-incremental=example.snar --verbose example/

Кратко:

   tar -cvjg example.snar -f `date +%s`.tbz2  example/

Развертывается архив через распаковку всех составляющих архивов по очереди, от
самых старых к самым новым.

В простейшем случае так:

   tar --extract --incremental --file level0.tar
   tar --extract --incremental --file level1.tar
   tar --extract --incremental --file level2.tar

Или, например, так:

   for i in *.tbz2; do tar -xjGf "$i"; done;

Если нужно  извлечь только  конкретные каталоги  из архива:

   tar -xjGf levelX.tar --wildcards 'example/foo*' 'example/bar*'

При использовании следующего скрипта, архив нулевого уровня будет создаваться
раз в неделю или раз в месяц, в зависимости от того какая строка раскомментирована:

   #!/bin/sh
   SOURCE="$1"
   test -d "$SOURCE" || exit 1

   DEST_DIR=`date +%G-%V`; #weekly
   #DEST_DIR=`date +%Y-%m`; #monthly
   #DEST_DIR=`date +%Y`-$(( (`date +%m`-1)/3+1 )); #quarterly

   mkdir -p $DEST_DIR;
   shift;
   tar --create "$@" --preserve-permissions --totals --bzip \
   --file="$DEST_DIR"/`date +%F-%s`.tbz2 \
   --listed-incremental="$DEST_DIR"/backup.snar \
   --no-check-device --exclude-vcs \
   --exclude-tag-under=access.log --exclude='*.log' \
   --exclude-caches --exclude-tag-under=IGNORE.TAG "$SOURCE"

Проверить работу этого скрипта можно, например, так:

   ./backup.sh example/ -v

Для некоторых версий tar наблюдается крах при одновременном использовании
--exclude-caches и --exclude-tag=, в этом случае --exclude-caches можно
заменить на --exclude-tag=CACHEDIR.TAG.
 
07.04.2010 , Автор: sanmai , Источник: http://sanmai.livejournal.com/78077... (доп. ссылка 1)
Ключи: tar, backup, archive
Раздел:    Корень / Администратору / Система / Диски и файлы / Резервное копирование

Обсуждение [ RSS ]
  • 1, adm (??), 08:09, 09/04/2010 [ответить]  
  • +/
    я делаю через rsync, есть несколько преимуществ.
     
     
  • 4, Pilat (ok), 23:53, 11/04/2010 [^] [^^] [^^^] [ответить]  
  • +/
    у rsync встроенный недостаток - получается не один файл, а миллион. Соответственно с миллионом файлов трудно работать при заливке на FTP, например, да и просто заархивировать сложно.
     

  • 2, adm (??), 08:34, 09/04/2010 [ответить]  
  • +/
    вернее у tar-а только одно преимущество это если нужно сразу на ленту бекапить
     
  • 3, sHaggY_caT (ok), 11:16, 09/04/2010 [ответить]  
  • +/
    Мы бэкапим gzip-ленный поток таром через ssh...

    Инкрементальные копии это очень хорошо: и трафик и место очень экономятся :)

    Может быть, кому-нибудь будет полезно, кусочек скрипта:


    tar cfvz - --listed-incremental=$BASEDIR/var/all.snar -T $BASEDIR/tmp/$DATE.full_list.tmp \
    | ssh -o StrictHostKeyChecking=no -l $LOGIN $REMOTEHOST "cat > $REMOTEDIR/data/$DATE.0.tgz" >>$BASEDIR/var/$DATE.0.remote.log 2>&1
    echo "code res=" $? >>$BASEDIR/var/$DATE.0.remote.log 2>&1  

    Советую так же использовать keychain для управления ssh-ключами

     
  • 5, AlexAT (ok), 12:21, 12/04/2010 [ответить]  
  • +/
    А в не самом простом виде подробное описание есть здесь:

    http://alex-at.ru/linux/tar-linux

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру