Перейти до

Рекомендованные сообщения

Опубліковано:
#!/bin/sh

tar -czf bakup.tar /var/stargazer

cp bakup.tar /usr/bakup

а у меня не работает....

 

[root@server1 var]# ./becup

./becuperver1 var]#

tar: Removing leading `/' from member names

 

и все и висит пока не прерву его вручную

  • Відповіді 55
  • Створено
  • Остання відповідь

Top Posters In This Topic

Опубліковано:

если тар написал это

tar: Removing leading `/' from member names

то значит в данный момент идёт паковка архива и нужно просто дождаться окончания

Опубліковано:

Господа, а не проще ли попросить автора переписать процедурку записи данных, добавив туда... эээ.... 4-5 строчек, что бы получить запись с гарантированным сохранением данных, вместо того, что бы устраивать массовые танцы с бубном по постоянному спасению стата?

Опубліковано:

кстати как вариант, сделать в конфиге стг опцию которая бы говрила писать серверу данные не только в $path/users/* а например ещё куда нибудь скажем $backpatch/users/* И что бы естественной стг читал только первую базу, тогда вторая всегда целая!

Опубліковано:

да, надо попробовать, блин как всё просто оказываеться! Автору СТГ огроменный респект, а если заработает так вообще класс! :)

Кто уже пробовал? и какая у кого версия СТГ?

Опубліковано: (відредаговано)

2Amal: Max предложил такое сделать.

А пока такого нет.

 

Кстати появилась идея - копировать файлы на другой раздел или слайс.

И ещё идея использовать команду fsync после копирования.

Я добавил в скрипт ещё одну копию файла stat.

 

У меня скрипт выглядит так:

#!/bin/sh

 

users="/var/stargazer/users"

 

for a in $users/*

do

/bin/cp $a/stat $a/stat.con

/usr/bin/fsync $a/stat.con

/bin/test -s $a/stat.con && /bin/cp $a/stat.con $a/stat.bak

/usr/bin/fsync $a/stat.bak

/bin/test ! -s $a/stat && /bin/cp $a/stat.bak $a/stat

/usr/bin/fsync $a/stat

done

 

Используется утилита fsync.

В FreeBSD она есть, начиная с версии 4.3

 

В Linux её нету, тут уж ищите ей замену )

Хотя в линукс есть команда sync.

Можно её поставить в конец скрипта вместо всех fsync.

Відредаговано XoRe
Опубліковано:

я от том что строчки то есть, значит их можно менять. Вопрос в том как поведёт себя СТГ если увидит в конфиге подобное:

WorkDir = /var/stargazer , /var/stargazer/reserv

Опубліковано:
Вопрос в том как поведёт себя СТГ если увидит в конфиге подобное:

WorkDir = /var/stargazer , /var/stargazer/reserv

вот решил проверить

2006-05-22 09:01:21 -- Stg v. 2.016.7.6 Release Candidate-3
2006-05-22 09:01:21 -- msgkey = 102
2006-05-22 09:01:21 -- RelcCl started as a process. pid 15186
2006-05-22 09:01:21 -- Directory /usr/billing,/usr/stg/users/ cannot be opened.
2006-05-22 09:01:21 -- RECIVECL pid = 15186
2006-05-22 09:01:21 -- recivecl: Start successful!

Опубліковано:
2vop: если файловая система с асинхронной записью, это может не спасти )

Идея гарантированного сохранения данных была описана еще в 70-х, если я не ошибаюсь. На то она и гарантированная, что бы данные не пропадали. Хоть и примитивная по сути. Даже на ассинхронной системе после сбоя ты либо получишь новые данные, либо у тебя останутся старые. Но в любом случае не файл нулевой длины.

Опубліковано:

Max, а если туда сначала скопировать всю папку /var/stargazer, а потом уже вписывать строчку? А то так получаеться что он должен сам всё скопировать, а потом ещё дописывать.. :loop:

Опубліковано:

2vop: но почему-то же файлы затираются.

Хотя может сервер стг их держит открытыми и только в конце периода переписывает.

 

2Amal: Всегда можно посмотреть исходники.

Скорее всего там идет что-то типа (грубо гоовря;)

workdir = get(conffile);

opendir(workdir);

А сервер честно пытается сделать opendir("/var/stargazer, /var/stargazer/reserv"); =)

Если автор не описал такой фичи, то там такого точно нет.

  • 3 weeks later...
Опубліковано:

2NeOPS:

Этого не может быть.

Ибо как говорил vop...

Идея гарантированного сохранения данных была описана еще в 70-х, если я не ошибаюсь. На то она и гарантированная, что бы данные не пропадали. Хоть и примитивная по сути. Даже на ассинхронной системе после сбоя ты либо получишь новые данные, либо у тебя останутся старые. Но в любом случае не файл нулевой длины.

=))

 

Попробуй копировать stat файлы на другой раздел.

Опубліковано:

я написал скрипт, который всю папку users архивирует каждый час и сохраняет в файл типа 12.06.2006_15:30.tar на другой раздел

  • 5 months later...
Опубліковано:

Ребята ведь всё просто !! Вот!!

 

 

 

#!/bin/sh

 

users="/var/stargazer/users" //-папка с юзерами!

check="/bin/test" //-а это просто чтобы не писать по многу раз :)

 

for a in $users/* //-цикл

do

$check ! -s $a/stat && /bin/cp $a/back/stat.bak $a/stat //сначала проверяет если файл stat нулевой, если нулевой то он востанавливает файл и папки куда бэкапили

$check -s $a/stat && /bin/cp $a/stat $a/back/stat.bak //а если файл stat не нулевой то делает бэкап оригинального

done //но это сами знаете.........................

 

допустим папки юзеров лежат здесть =/var/stargazer/users

вот пример:

 

 

 

=================================

=================================

 

#!/bin/sh

 

users="/var/stargazer/users"

check="/bin/test"

 

for a in $users/*

do

$check ! -s $a/stat && /bin/cp $a/back/stat.bak $a/stat

 

$check -s $a/stat && /bin/cp $a/stat $a/back/stat.bak

 

done

 

=================================

=================================

 

просто создайте в папке каждого юзера папку back

 

+-/var/stargazer/users

|

+-/Jora/

| |

| +-/back/ <==Вот эту папку создайте

| |

| +-/detail_stat/

| |

| .log

| .stat

|

+-/Petia/

| |

| +-/back/ <==Вот эту папку создайте

| |

| +-/detail_stat/

| |

| .log

| .stat

+

 

Да и поставте в кронтаб

 

*/20 * * * * root /usr/backup <=="backup" это не папка это название //тоесть этот скрипт будет выполнятся каждые 20минут

  • 3 weeks later...

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Створити нове...