поиск:    

 
переход:  



Екатеринбург Онлайн
Форумы:  Операторы связи,   Модели телефонов,   Покупка-продажа телефонов,   Цифровое фото,   Обсуждение гаджетов,   Интернет

  Форумы  > Технологии > Технические вопросы (железо)  

сохранение и архивирование...


Список Тем  |   Поиск  |   Правила  |   Статистика  |
сохранение и архивирование...   #14914  наверх
Автор: 
Дата:   

Судя по учестившимся вопросам которые задают мне лично и в этот форум, начинающие админы и пользователи выполняющие их функции наконец таки начали задумываться об сохранении информации. чтобы не писать кучу раз я попробую рассказать что я нарыл в свое время и как использую в своей работе. (и не только.)

1 надо определиться какая информация нужна (винт, сервер и пр.)
2 посчитать приблизительный обьем будущего архива.
3 определиться с периодичностью архивации. чем чаще тем лучше, но резко возрастают обьемы.
4 определить какие старые архивы нужны. (т.е. нужна реальная копия "на вчера" или "а чтобы и за полгода назад восстановить" )
5 установить какую нить фичу, удовлетворяющим следующим требованиям:
5.1 "фича" должна архивировать что нам надо.
5.2 "фича" должна создавать уникальное имя самого архива
5.3 "фича" должна уметь снимать атрибут архивный (после архивации)
5.4 "фича" должна уметь распознавать наличие атрибута архивный (типо если его нет то не трогать)
5.5 было бы приятно, если у "фичи" была бы какая то хистори
5.6 "фича" имела бы возможность двух режимов 1- полный это когда архивирует все и второй измененный это когда архивируются только файлы , которые были изменены за какой то период.
6 ставим "фичу" на машину и настраиваем автозапуск (или ручной) так как нам надо.
7 архивация должна проходить так:
7.1 раз в неделю (пятница) архивируется все и снимаются атрибуты "архивный" со всех файлов.
7.2 в остальные дни недели архивируются только файлы имеющие атрибут "архивный"
7.3 раз в какой то промежуток все архивы сливаются на какой то внешний носитель (либо уничтожаются за ненадобностью).


в связи с тем что такая фигня мне была нужна давно, я написал прогу на паскале (и пульнул как курсовой )))) )
что она может.
1 берет внешний архиватор (проверял на arj и rar) генерит ему командную строку и запускает его с ней...

далее я напишу как есть сейчас (для rar)
в имени файла должна стоять дата ггггммдд**. ( ** - любые буквы напримет mat для материальной группы). считывается из системы в настроечном файле прописываем также всякие команды для самого архиватора.
вот строка которая подставляется архиватору

a -r -v620000 -ao -ac 20030520mat C:\1C_Bases\1C_Mat\1SBDB\*.*

расшифрую:
сжать
с поддиректориями
том не больше 600 мегов
снять атрибут "архивный" с файла
архивировать только файлы с атрибутом "архивный"
дата + имя архива
что и откуда брать (здесь все из католога...)

вот такое решение было. плохо конечно что на паскале , но на то время я и это ели ели написал.
если есть желание можно будет пообщаться.
icq 12065497
или az_av@mail.ru только в теме укажите что Е1

p.s. господа "правильные" программисты и супер админы. типо просьба не пинать. каждый что может то и делает. )))
  |  Поделиться:  
Re: сохранение и архивирование...   #14918  наверх
Автор: 1 [гость]
Дата:   

Ты что проснулся :-)
  |  Поделиться:  
Re: сохранение и архивирование...   #14923  наверх
Автор: Дядя_Алекс..
Дата:   

program arxiv_servers;

{ А....... Александр }
{ alex@............ru, az_av@mail.ru }

{$M $4000,0,0 }

{Загружаем переменные из из настроечного файла a_sys.ini}
uses Dos,Crt;
var
perem:text; {файл-переменная для загрузки переменных}
arxivat:string; {тип архиватора}
full:string; {переменная для архива полный}
obnov:string; {переменная для обновления}
nummax:integer; {переменная максимального количества архивов обновлений}

num:text; {файл-переменная для проверки типа архива полный/обновление}
numt:integer; {переменная текущего архива}

kommstr:string; {переменная для использования .... полный/обновление }

f_arhiv:text; {файл-переменная для загрузки списка архива }
s_arhiv:string; {переменная для загрузки списка архива }

kommstrend:string; {конечная переменная для формирования коммандной строки}

H,M,S,Y,Mo,D,Hund:word; {год, месяц, день}
T:DateTime; {дата}



f_history:text; {файл-переменная для записи истории }
s_history:string; {переменная для записи истории }

function LeadingZero(W:Word):string;

var
S:string;
begin
Str(W:0,S);
if Length(S)=1 then
S:='0'+S;
LeadingZero:=S;
end;

begin
{Блок "истории архива - начало"}
Assign (f_history, 'history.txt'); {прицепляем файл}
Append (f_history); {считываем файл}
Writeln (f_history, '================================================== ');
Writeln (f_history, 'Старт программы архивации... ');
close(f_history);
{Блок "истории архива - конец"}

{Блок №1 начало
В этом блоке мы считываем начальные параметры переменных
из настроечного файла a_sys.ini }
Assign (perem, 'a_sys.ini'); {прицепляем файл}
Reset (perem); {считываем файл}
Readln (perem, arxivat);
Readln (perem, full);
Readln (perem, obnov);
Readln (perem, nummax);

{Блок "истории архива - начало"}
Append (f_history); {считываем файл}
Writeln (f_history, 'Архиватор : ', arxivat);
{Writeln (f_history);}
Writeln (f_history, 'Макс. кол-во обновлений : ', nummax);
{Writeln (f_history);}
{Блок "истории архива - конец"}

{ситывание номера текущего архива}
Assign (num, 'narx.ini'); {прицепляем файл}
Reset (num); {считываем файл}
Readln (num, numt); {заносим значение текущего архива}

{Блок "истории архива - начало"}
Writeln (f_history, 'Номер текущего архива : ', numt);
{Writeln (f_history);}
{Блок "истории архива - конец"}

{проверяем номер архива на полный/неполный n = 1 или нет}
if numt=1
then
begin
{ Writeln ('N=', numt, 'считываем параметры для полного архива');}
kommstr:=full; {привязываем к файлу полного архива}
{Блок "истории архива - начало"}
Writeln (f_history, 'текущий архив : полный ');
{Writeln (f_history);}
{Блок "истории архива - конец"}
end
else
begin
{ Writeln ('N=', numt, 'считываем параметры для обновленного архива');}
kommstr:=obnov; {привязываем к файлу обновленного архива}
{Блок "истории архива - начало"}
Writeln (f_history, 'текущий архив : обновление ');
{Writeln (f_history);}
{Блок "истории архива - конец"}
end;

{проверяем номер архива на последний/не последний}
if numt=nummax
then
begin
{ Writeln ('N=', numt, 'это был последний архив');}
numt:=1;
{Блок "истории архива - начало"}
Writeln (f_history, 'это был последний архив. ');
{Writeln (f_history);}
{Блок "истории архива - конец"}
end
else
begin
{ Writeln ('N=', numt, 'добавляем к значению номера архива единицу');}
numt:=numt+1;
end;
close (num);
{Writeln ('N=', numt);}
Assign (num, 'narx.ini');
Rewrite (num);
Writeln (num, numt);
close (num);

{блок проверки текущей даты, время}
GetDate(Y,Mo,D,Hund);
GetTime(H,M,S,Hund);

{Блок "истории архива - начало"}
Writeln (f_history, 'Текущая дата : ',LeadingZero(Y),':',LeadingZero(Mo),':',LeadingZero(D));
Writeln (f_history, 'Текущее время : ',LeadingZero(H),':',LeadingZero(M),':',LeadingZero(S));
Writeln (f_history, 'Всего места на диске : ',DiskSize(0) div 1024, ' Кбайт');
Writeln (f_history, 'Свободного места на диске : ',DiskFree(0) div 1024, ' Кбайт');

{Writeln (f_history);}
{Блок "истории архива - конец"}

{блок запуска цикла архивации}
{пишем цикл.}
begin
Assign (f_arhiv, 'spis_arx.ini');
Reset (f_arhiv); {читаем 1 файл}
repeat
begin
Readln (f_arhiv, s_arhiv);
kommstrend:=kommstr+' '+LeadingZero(Y)+LeadingZero(Mo)+LeadingZero(D)+s_arhiv;

{Блок "истории архива - начало"}
Writeln (f_history, 'Коммандная строчка : ',arxivat, ' ', kommstrend);
{Блок "истории архива - конец"}

Exec(arxivat, kommstrend);
end;
until EOF (f_arhiv);
Writeln ('конец архива');
close (f_arhiv);
end;

Writeln (f_history, 'Конец программы.');

close(f_history);

end.

[Сообщение изменено пользователем 21.05.2003 11:37]
  |  Поделиться:  
Re: сохранение и архивирование...   #14924  наверх
Автор: Danilka   (О пользователе)
Дата:   

Wow! Опупеть :-) Вернусь из инстика - проверю... :-d
  |  Поделиться:  
Re: сохранение и архивирование...   #14929  наверх
Автор: 1 [гость]
Дата:   

Да видел эту лажу которую ты мне пихал для защиты диплома что ли :-) :-d
  |  Поделиться:  
Re: сохранение и архивирование...   #14932  наверх
Автор: 2 [гость]
Дата:   

2 1
:-) :-) :-) :-) :-) :-) :-) :-) :-) :-)

ntbackupом уж тогда, и то прямей бы получилось
  |  Поделиться:  
Re: сохранение и архивирование...   #14938  наверх
Автор: Дядя_Алекс..
Дата:   

: 1 , так сиди и помалкивай , если и такое написать не смог )))))

: 2, да фиг его знает... писалось то не для виндов, все настраивалось под arj тачка 486, сеть 10 мб сервер новелл 3.12 операционка дос 5.*

а там ntbackup, небыло...

просто есть решение и работает кучу лет.
если есть время и нормальные ручки, можно переписать, а если нет то можно и так пользоваться...
результат один.. (почти)
  |  Поделиться:  
Re: сохранение и архивирование...   #14961  наверх
Автор: Максим [гость]
Дата:   

прога есть хорошая BackUP32 - делает все!!! (ну почти все), но не может стартовать самостоятельно, нужно запускать (из командной строки или кнопкой старт)
А так почти все пункты перечисленные выше есть
  |  Поделиться:  
Re: сохранение и архивирование...   #14963  наверх
Автор: 1 [гость]
Дата:   

На самом деле кто как может так и архивит у кого на сколько знаний хватает
Я выот к примеру не навижу программить и выше приведенный код я просто не смотрел :-)
  |  Поделиться:  
Список Тем  |   Поиск  |   Правила  |   Статистика  |

Внимание! сейчас Вы не авторизованы и не можете подавать сообщения как зарегистрированный пользователь. Чтобы авторизоваться, нажмите на эту ссылку (после авторизации вы вернетесь на эту же страницу)


 Мой E1 
 
Вход для зарегистрированных пользователей:
E-mail:
Пароль:
Если Вы не зарегистрированы, то добро пожаловать на страницу регистрации.
Если Вы зарегистрированы, но забыли пароль, Вы можете его запросить.

Развернуть блок
 Погода