Автор Тема: Не успешно архивиране (с цел backup) чрез tar  (Прочетена 2286 пъти)

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Привет:)

Имам проблемец и незнам какво греша..

В конзолата пиша:
Код:
sudo su
***************
tar --create --file=/backup/level0-backup.tar --listed-incremental=/backup/level0-backup.list   --files-from=/etc/backup/do-backup

В оречената backup папка се появява архива и list файла.
Лист файла е празен, а архива е пълен, но колко работи са записани и дали всичко е ок - незнам.

В терминала излиза:
Код:
root@ИМЕТО_НА_КОМПА:/home/ПОТРЕБИТЕЛЯ_МИ # tar --create --file=/backup/level0-backup.tar --listed-incremental=/backup/level0-backup.list   --files-from=/etc/backup/do-backup
tar: /home/ПОТРЕБИТЕЛЯ_МИ/.gvfs: Cannot stat: Permission denied
tar: Removing leading `/' from member names
tar: Error exit delayed from previous errors

Съдържанието на /etc/backup/do-backup е
Код:
/usr/local/bin
/etc
/home
/root

Въпреки грешките създаденият архив може да се отваря, но ме претесняват тея работи (дали всичко е станало качествено), защото все пак искам да си направя backup на системата  ::)

Благодаря предварително на отзовалите се !  ;)

ПП: Дистрибуцията ми е ubuntu v9.04

Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
tar  tvf /backup/level0-backup.tar >/backup/level0-backup.list.new
Активен

0x2B|~0x2B

Naka

  • Напреднали
  • *****
  • Публикации: 3401
    • Профил
Цитат
tar: Error exit delayed from previous errors
Тази грешка се появява, когато някой файл се промени докато tar-a го backup-ва.
Например много често лог файлове.

Ако е това спокойно не е никава грешка. Цяла система съм архивирал с тар, винаги е го е имало това съобщение и съм въстановавал успешно системата въпреки съобщението.

Обаче ако искаш някои файлове да са правилните докато се бакупва, трябва да направиш така, че те да не се променят през време на бакупа.

Например: за mysql bd. преди да пуснеш tara. пишеш в отделен mysql терминал. "flush tables with read lock". След като свърши бакупа пишеш "unlock tables"



« Последна редакция: Jul 26, 2009, 14:05 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
@romeo_ninov, Благодаря ще пробвам !

Цитат
Тази грешка се появява, когато някой файл се промени докато tar-a го backup-ва.
Има ли след това обаче опасност от някаква грешка при разархивирането на него файл ?
Аз по принцип като backup-вам гледам да не правя нищо за да няма такива издънки, ама ето че нестава :)

В момента нямам mysql, но предполагам че ще сложа тъй като ще ми е нужен за после. (само за домашни потребности)
Но иначе мисля да му дам едно stop-че и после да архивирам базата.

ПП: Какво мислите за acronis, въпреки възможностите с архивирането чрез tar ?
Аз го ползвам от много отдавна и съм доволен от него (спасявал ме е при нужда), но незнам как е с линукс дяловете ?
Понеже имам и уиндоус, под него направих един backup на партишъна където е убунтуто (за всеки случай), но незнам защо оставам с някакви съмнения дали всичко е наред (паника съм понякога, какво да направя)
« Последна редакция: Jul 26, 2009, 14:39 от staco »
Активен

Naka

  • Напреднали
  • *****
  • Публикации: 3401
    • Профил
Цитат
Тази грешка се появява, когато някой файл се промени докато tar-a го backup-ва.
Има ли след това обаче опасност от някаква грешка при разархивирането на него файл ?

Грешка при разархивирането няма. Но не съм се замислял какво има в файла. Дали тара го е взел преди промяната (някакво заключване), дали след това, или ако се променил през време на работата да не е преплетен.
И на мен ми интересно как точно работи тара в такъв случай. Пробвай и ни кажи.

Активен

Perl - the only language that looks the same before and after encryption.

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
В момента нямам mysql, но предполагам че ще сложа тъй като ще ми е нужен за после. (само за домашни потребности)
Но иначе мисля да му дам едно stop-че и после да архивирам базата.
Не е нужно. Зачети се в документацията на командата mysqlhotcopy.

Дали тара го е взел преди промяната (някакво заключване), дали след това, или ако се променил през време на работата да не е преплетен.
Никое от тези не е точно вярно. Когато tar архивира, той взема текущия файл във временна памет, при което вземане (което е копиране), файлът се копира до този байт, до който е съществувал в момента на завършването на копирането. След като го копира в паметта, tar проверява дали има разлики между оригиналния файл и този, който е копиран в паметта. Ако няма разлики, файлът се добавя в архива. След това добавяне, ако се направят промени в оригиналния файл, tar няма да разбере за промените. Той знае за промени в интервала от копирането на файла в паметта до вмъкването на този временен файл в архива. Ако има разлики между оригиналния файл и временния файл, tar оставя този файл за по-късно добавяне в архива с надеждата, че тогава ще си приключил с промените по файла. Ако този файл продължава да се променя, дори и след като не променящите се файлове вече са архивирани, tar добавя в архива последното копие на файла от буфера, което копие не съдържа промените, които са направени по файла след последното му копиране в буфера.
Файл с какво съдържание се копира в буфера? Всяка команда се подава за обработка в опашка, подобна на тази пред баничарницата. Така, всяка команда се изпълнява без счупвания (тъй като командите не се преплитат), и се изпълнява тогава, когато й дойде ред на опашката, освен ако изпълнението й не е прекъснато междувременно (жената е звъннала, че ще пържи мекици, и баничките стават излишни). Така, при архивиране на лог на apache, имаме следното нареждане на опашката: apache иска да вмъкне ред в лога, tar иска да копира лог файла, apache иска да вмъкне ред в лога. Всяка една задача изчаква да й дойде редът, и така, когато tar копира файла, той копира файла със съдържанието, което файлът е имал до този момент (без половинчати редове). Половинчати редове могат да се получат тогава, когато заявката на tar за копиране на файла е била насилствено прекъсната по време на копирането (баничарят се е гътнал след като ти е дал баниците, но преди да ти даде бозата) ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
В момента нямам mysql, но предполагам че ще сложа тъй като ще ми е нужен за после. (само за домашни потребности)
Но иначе мисля да му дам едно stop-че и после да архивирам базата.
Не е нужно. Зачети се в документацията на командата mysqlhotcopy.

Дали тара го е взел преди промяната (някакво заключване), дали след това, или ако се променил през време на работата да не е преплетен.
Никое от тези не е точно вярно. Когато tar архивира, той взема текущия файл във временна памет, при което вземане (което е копиране), файлът се копира до този байт, до който е съществувал в момента на завършването на копирането. След като го копира в паметта, tar проверява дали има разлики между оригиналния файл и този, който е копиран в паметта. Ако няма разлики, файлът се добавя в архива. След това добавяне, ако се направят промени в оригиналния файл, tar няма да разбере за промените. Той знае за промени в интервала от копирането на файла в паметта до вмъкването на този временен файл в архива. Ако има разлики между оригиналния файл и временния файл, tar оставя този файл за по-късно добавяне в архива с надеждата, че тогава ще си приключил с промените по файла. Ако този файл продължава да се променя, дори и след като не променящите се файлове вече са архивирани, tar добавя в архива последното копие на файла от буфера, което копие не съдържа промените, които са направени по файла след последното му копиране в буфера.
Файл с какво съдържание се копира в буфера? Всяка команда се подава за обработка в опашка, подобна на тази пред баничарницата. Така, всяка команда се изпълнява без счупвания (тъй като командите не се преплитат), и се изпълнява тогава, когато й дойде ред на опашката, освен ако изпълнението й не е прекъснато междувременно (жената е звъннала, че ще пържи мекици, и баничките стават излишни). Така, при архивиране на лог на apache, имаме следното нареждане на опашката: apache иска да вмъкне ред в лога, tar иска да копира лог файла, apache иска да вмъкне ред в лога. Всяка една задача изчаква да й дойде редът, и така, когато tar копира файла, той копира файла със съдържанието, което файлът е имал до този момент (без половинчати редове). Половинчати редове могат да се получат тогава, когато заявката на tar за копиране на файла е била насилствено прекъсната по време на копирането (баничарят се е гътнал след като ти е дал баниците, но преди да ти даде бозата) ;)
;D ;D ;D благодаря за обяснението, стана ми вече ясно !  ;)

Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Backup в Линукс
Настройка на програми
bobo 4 2599 Последна публикация Apr 14, 2005, 20:47
от bobo
Споделете как се подготвяте за backup
Настройка на програми
Bogo 1 2135 Последна публикация Aug 19, 2007, 17:02
от bnight
как да направим backup на Линукс?
Настройка на програми
jeff67 3 2136 Последна публикация Sep 17, 2007, 18:31
от blackartist
Backup
Настройка на програми
k4BIG 27 6911 Последна публикация Sep 22, 2007, 15:45
от mom
Backup isp
Настройки на софтуер
nahap 4 2297 Последна публикация Apr 01, 2008, 09:57
от nahap