![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
ViP
![]() Пол:
Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
|
Вопрос создания архивных копий системы и данных весьма важен в работе сисадмина. На моей памяти есть как провальные ситуации, когда грохались базы 1С клиентов (не мной ), так и случаи дарения коньяка и прочих плюшек за восстановление случайно или умышленно утраченной пользователями информации.В этой теме предлагаю обсуждать всевозможные способы создания архивных копий и точек восстановления пользовательских данных, состояния ОС, служб и серверов. Обсуждаются именно самодельные/нестандартные и иные способы. ПО для бэкапа обсуждается в разделе Архиваторы, системные и тест прог Последний раз редактировалось PLAstic; 11.11.2009 в 18:31.. |
|
|
|
| Эти 4 пользователя(ей) сказали cпасибо за это полезное сообщение: |
| Реклама: |
|
|
#2
|
|
Пользователь
Пол:
Регистрация: 09.10.2007
Сообщений: 126
Репутация: 37
|
Помогите написать батник, для резервного копирования папок. ...или может у кого готовые есть?
|
|
|
|
|
|
#3
|
|
Постоялец
![]() ![]() Пол:
Регистрация: 19.10.2006
Сообщений: 238
Репутация: 111
|
xcopy /? в командной строке
увидишь все доступные параметры ... и вперед ... хотя ,чем стандартные средства винды не устраивают("Архивация данных" в разделе Служебные ) ? я использую это только для автоматизации некоторых процессов Последний раз редактировалось cruizer; 05.05.2009 в 14:50.. |
|
|
|
| Сказали спасибо: |
|
|
#4
|
|
ViP
![]() Пол:
Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
|
Оба примера скриптов - файлы *.vbs
Класть можно куда угодно, шедулить на ежедневное исполнение. Ежемесячное архивирование текстовых логов ISA, IIS и MDaemon Добавлено через 4 минуты Архивирование баз 1С Архивы создаются по маске NNNNNyyyymmdd, где NNNNN - название архива yyyymmdd - формат даты в виде год, месяц, день. При такой форме даты архивы упорядочены в хронологическом порядке. Последний раз редактировалось PLAstic; 05.05.2009 в 16:26.. Причина: Добавлено сообщение |
|
|
|
| Эти 3 пользователя(ей) сказали cпасибо за это полезное сообщение: |
|
|
#5
|
|
Пользователь
Пол:
Регистрация: 29.01.2009
Сообщений: 34
Репутация: 4
|
С помощь RAR в батник строки
"C:\Program Files\WinRaR\rar" a -ag -r -dh E:\Arhiv\2009.rar D:\ архивируем с датой где архив что архивируем |
|
|
|
| Сказали спасибо: |
|
|
#6
|
|
Пользователь
Пол:
Регистрация: 09.10.2007
Сообщений: 126
Репутация: 37
|
Спасибо, разберусь.
Еще вопрос: Как сделать, чтоб в названии архива присутствовала дата его создания? |
|
|
|
|
|
#7
|
|
ViP
![]() Пол:
Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
|
|
|
|
|
|
|
#8
|
|
Неактивный пользователь
Пол:
Регистрация: 20.11.2007
Сообщений: 10
Репутация: 3
|
Гм.. (достает старую, еще прошлого века папочку)
Лучше всего вот так: if exist %date%.dat goto :end //проверяем создана ли сегодня копия. Если уже есть, батник прерывается. copy *.dat date\*.dat //копируем в папку отчет о запуске батника del *.dat //удаляем предыдущую дату copy *.bat %date%.dat //создаем сегодняшнюю дату копирования If exist e:\rezerv\01*.dat mesec.bat //если первое число, то запускается батник, копирующий в другое место //переходим в папку назначения d: cd d:\target //проверяем куда будем копировать if exist e:\rezerv\rez10.rez goto :rez1 if exist e:\rezerv\rez1.rez goto :rez2 if exist e:\rezerv\rez2.rez goto :rez3 if exist e:\rezerv\rez3.rez goto :rez4 if exist e:\rezerv\rez4.rez goto :rez5 if exist e:\rezerv\rez5.rez goto :rez6 if exist e:\rezerv\rez6.rez goto :rez7 if exist e:\rezerv\rez7.rez goto :rez8 if exist e:\rezerv\rez8.rez goto :rez9 if exist e:\rezerv\rez9.rez goto :rez10 //если файла с номером архива нет, его создаем и прерываем батник copy e:\rezerv\12.bat e:\rezerv\rez1.rez goto :end //типовой модуль копирования :rez1 //метка с номером копии move e:\rezerv\rez10.rez e:\rezerv\rez1.rez //перемещаем номер копии на наш xcopy *.* e:\rezerv\rezerv1\db\*.* /s /f /r /y //копируем все файлы с подкаталогами в резервное место goto :end //закрываем батник :rez2 move e:\rezerv\rez1.rez e:\rezerv\rez2.rez xcopy *.* e:\rezerv\rezerv2\db\*.* /s /f /r /y goto :end :rez3 move e:\rezerv\rez2.rez e:\rezerv\rez3.rez xcopy *.* e:\rezerv\rezerv3\db\*.* /s /f /r /y goto :end :rez4 move e:\rezerv\rez3.rez e:\rezerv\rez4.rez xcopy *.* e:\rezerv\rezerv4\db\*.* /s /f /r /y :rez5 move e:\rezerv\rez4.rez e:\rezerv\rez5.rez xcopy *.* e:\rezerv\rezerv5\db\*.* /s /f /r /y goto :end :rez6 move e:\rezerv\rez5.rez e:\rezerv\rez6.rez xcopy *.* e:\rezerv\rezerv6\db\*.* /s /f /r /y goto :end :rez7 move e:\rezerv\rez6.rez e:\rezerv\rez7.rez xcopy *.* e:\rezerv\rezerv7\db\*.* /s /f /r /y goto :end :rez8 move e:\rezerv\rez7.rez e:\rezerv\rez8.rez xcopy *.* e:\rezerv\rezerv8\db\*.* /s /f /r /y goto :end :rez9 move e:\rezerv\rez8.rez e:\rezerv\rez9.rez xcopy *.* e:\rezerv\rezerv9\db\*.* /s /f /r /y goto :end :rez10 move e:\rezerv\rez9.rez e:\rezerv\rez10.rez xcopy *.* e:\rezerv\rezerv10\db\*.* /s /f /r /y goto :end :end //создает 10 отдельных копий. Хоть ежедневно :-) И раз в месяц - вызывает батник для создания копии в другом месте :-) Но лучше всего скрипты осваивать. П.с. текст дальше // - убрать обязательно! батник лежит в папке, куда копируется. П.п.с %date% - вставляет текущую дату в ту строку, где используется. Последний раз редактировалось Ckpyt; 03.06.2009 в 14:19.. |
|
|
|
| Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение: |
|
|
#9
|
|
Неактивный пользователь
Регистрация: 31.10.2008
Сообщений: 1
Репутация: 0
|
Ckpyt а еще чтото есть?
|
|
|
|
|
|
#10
|
|||||||||||||||||||||||
Есть ваша фантазия, и google.com +Start->Run->[hh ntcmds.chm]
__________________
This world is very interesting, it feels free, but this freedom must be hacked. (с)
|
||||||||||||||||||||||||
|
|
|
|
|
#11
|
|||||||||||||||||||||||
|
ViP
![]() Пол:
Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
|
Если это реальный интерес, а не набор постов, то скажу мнение стороннего наблюдателя.
|
|||||||||||||||||||||||
|
|
|
|
|
#12
|
|
Неактивный пользователь
Пол:
Регистрация: 04.01.2007
Сообщений: 9
Репутация: 10
|
sergeysnl,
а чем, собственно, не устраивает стандартный ntbackup? шедулер есть, параметры коммандной строки есть, проверка целостности есть... а чтоб файл был с сегодняшней датой - простейший perl скрипт и в нем формировать имя файла и запускать ntbackup |
|
|
|
|
|
#13
|
|
Неактивный пользователь
Пол:
Регистрация: 20.11.2007
Сообщений: 10
Репутация: 3
|
а)количество копий можно наделать вручную сколько хочешь. Простым копированием блоков до нужного числа. б)да, нет. Файл древний, программировать тогда не умел. в)а вот и нет. Специально для этого в папке с копиями лежит файл с номером последней версии(rez*.rez) г)доделать архивирование достаточно легко. Но вообще, файл сделан для одной, не сетевой машины. Т.е. к машине имеют доступ только те, кто за нее садится. П.с. вариант с ntbackupom лично меня не устраивал и не устраивает потому что нет возможности залезть в архив и вытащить оттуда только нужный файл. П.п.с на текущий момент использую собственноручно написанную программу для резервного копирования. но, естественно, выкладывать в открытый доступ программу, весом в полторы тысячи строк, я просто не буду :-) |
|
|
|
|
|
#14
|
|
Неактивный пользователь
Пол:
Регистрация: 04.01.2007
Сообщений: 9
Репутация: 10
|
Ckpyt,
ну не знаю, чего ты там наваял на полторы тысячи строк, но почти все подобные задачи решаются перловым скриптом на полторы сотни строк, 2/3 которых печать в лог-файл ![]() Вот конкретный рабочий скрипт, который выполняет все нужные действия. Стопит оракловую базу, стопит сервисы, архивирует RAR все нужное содержимое, а потом все обратно стартут. Вешаешь все или на шедулер по команде at или ставишь nncron. Все что надо, изредка посматривать в логи. Те папки которые нужно архивировать указываютсяв файле backup.lst Код:
#!/Perl/bin/perl
#
# Скрипт создания offline архивной копии базы Oracle Informatica
#
# Author: Merlin Cori
#
# merlin.cori@gmail.com
#
# Ключи запуска:
# - отсутствуют
#
use Mail::Sender;
use Cwd;
use Time::localtime;
use Win32API::File 0.08 qw( :ALL );
#
#--------------------------------Переменные --------------------
$archdir = "d:\\backup\\"; # Рабочий каталог
$arch_file = "archive_"; # Файл backupa
$ext=".rar";
$logfile = "oracle_backup.log"; # Лог файл
$command = "c:\\arc\\rar a -rr10p -k -m1 -mt4 -r -v3900m"; # командная строка запуска программы архивации
$startbat="startdb.bat";
$stopbat="stopdb.bat";
$dir_list=" \@backup.lst";
$mail_to = "merlin.cori@gmail.com";
$test_run=0;
#---------------------------------------------------------------------
print("\t- = - Informatica Oracle base backup script - = -\n\t\tVersion 0.3a build 15.06.2009\n\n");
$workdir = "c:\\oracle"; # Рабочий каталог
($day, $month, $year, $hour, $min, $sec)=now();
$file_name=$arch_file.$day."_".$month."_".$year;
open (LOGFILE_HANDLE,">>$logfile") or die ("Cannot open log file $logfile");
print LOGFILE_HANDLE "Started ";
print LOGFILE_HANDLE "$day.$month.$year $hour:$min:$sec";
print LOGFILE_HANDLE "\n";
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "$day.$month.$year - $hour:$min:$sec Stopping services\n";
print LOGFILE_HANDLE "Stopping Informatica PCISBW\n";
system("net stop \"Informatica PCISBW\"");
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "Stopping Informatica Server\n";
system("net stop Informatica");
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "Stopping Informatica Repository Server\n";
system("net stop \"Informatica Repository Server\"");
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "Stopping Gene6 FTP Server\n";
system("net stop \"Gene6 FTP Server\"");
open(BATFILE_HANDLE,">$stopbat") or die ("Cannot create temp bat file");
print BATFILE_HANDLE "set nls_lang=russian_cis.ru8pc866\n";
print BATFILE_HANDLE "set ORACLE_SID=XXXX\n";
print BATFILE_HANDLE "echo set echo on > %0.tmp\n";
print BATFILE_HANDLE "echo connect sys/".$passwd."\@XXXX as sysdba; >> %0.tmp\n";
print BATFILE_HANDLE "echo shutdown immediate; >> %0.tmp\n";
print BATFILE_HANDLE "echo exit; >> %0.tmp\n";
print BATFILE_HANDLE "C:\\oracle\\XXXX\\ora92\\bin\\sqlplus /nolog @%0.tmp\n";
print BATFILE_HANDLE "del %0.tmp\n";
print BATFILE_HANDLE "exit\n";
close BATFILE_HANDLE;
system("stopdb.bat");
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "Stopping OracleXXXXTNSListener\n";
system("net stop OracleXXXXTNSListener");
unlink $stopbat;
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "Stopping OracleServiceXXXX\n";
system("net stop OracleServiceXXXX");
# Архивируем содержимое папки Oracle
$archive=$archdir.$file_name.$dir_list;
system "$command $archive.$dir_list";
$source=$archdir.$file_name.$ext;
$dest=$destdir.$file_name.$ext;
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "$day.$month.$year - $hour:$min:$sec Starting services\n";
print LOGFILE_HANDLE "Starting OracleServiceXXXX\n";
system("net start OracleServiceXXXX");
print LOGFILE_HANDLE "Starting OracleXXXXTNSListener\n";
system("net start OracleXXXXTNSListener");
print LOGFILE_HANDLE "Run start.bat\n";
open(BATFILE_HANDLE,">$startbat") or die ("Cannot create temp bat file");
print BATFILE_HANDLE "echo set echo on > %0.tmp\n";
print BATFILE_HANDLE "echo connect sys/".$passwd."\@XXXX as sysdba; >> %0.tmp\n";
print BATFILE_HANDLE "echo startup force; >> %0.tmp\n";
print BATFILE_HANDLE "echo exit; >> %0.tmp\n";
print BATFILE_HANDLE "C:\\oracle\\XXXX\\ora92\\bin\\sqlplus /nolog @%0.tmp\n";
print BATFILE_HANDLE "del %0.tmp\n";
close BATFILE_HANDLE;
system("startdb.bat");
unlink $startbat;
print LOGFILE_HANDLE "Starting Informatica Repository Server\n";
system("net start \"Informatica Repository Server\"");
print LOGFILE_HANDLE "Starting Informatica Server\n";
system("net start Informatica");
sleep 40;
print LOGFILE_HANDLE "Starting Informatica PCISBW\n";
system("net start \"Informatica PCISBW\"");
print LOGFILE_HANDLE "Starting Gene6 FTP Server\n";
system("net start \"Gene6 FTP Server\"");
}
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "Backup successful\n";
print LOGFILE_HANDLE "Stopped $day.$month.$year - $hour:$min:$sec \n\n";
print LOGFILE_HANDLE "-" x 40;
print LOGFILE_HANDLE "\n\n";
close LOGFILE_HANDLE;
send_message("Completed","Success XXXX",$mail_to);
#------------------------------- Begin send message -------------------------------------
sub send_message
{
my($message) = @_[0];
my($subj) = @_[1];
my($adress)= @_[2];
$sender = new Mail::Sender {
smtp => 'smtp.xxxxxx.ru',
from => 'backup@xxxxxx.ru',
on_errors => undef,
} or die "Can't create the Mail::Sender object: $Mail::Sender::Error\n";
$sender->OpenMultipart({to => $adress, subject => $subj});
$sender->Body({encoding => 'Base64', charset => 'windows-1251'});
$sender->SendEnc($message);
$sender->Close;
}
#------------------------------- End send message ---------------------------------------
#------------------------------- Begin current date and time ----------------------------------
sub now()
{
$day = localtime->mday();
$month = localtime->mon()+1;
$year=localtime->year() + 1900;
#final_archiving ($day, $month, $year, $archdir);
$hour=localtime->hour();
$min=localtime->min();
$sec=localtime->sec();
return $day, $month, $year, $hour, $min, $sec;
#------------------------------- End current date and time ------------------------------------
}
Последний раз редактировалось Merlin Cori; 15.06.2009 в 09:51.. |
|
|
|
| Сказали спасибо: |
|
|
#15
|
|
Неактивный пользователь
Пол:
Регистрация: 30.05.2008
Сообщений: 45
Репутация: 3
|
простенький бекап для копирования базы 1С
@echo. @echo Backup 1C_Base @echo off rar u -s -mdd -dh -ilog -x*.cdx -x*.bmp -x*.jpg -x*.ert -x*.exe -x*.zip -x*.rar -r -agDD_MMM_YY-HH-MM-SS backup "D:\1CBase\Mk" move /Y backup*.* D:\1CBackup\ Пользовался им раньше, а теперь пользуюсь программой КобианБекап - бесплатная, ресурсов почти не потребляет, работает в фоновом режиме, проверяет сделаный архив, удаляет архивные файлы, когда их количество превышает заданное. Очень рекомендую. Добавлено через 20 минут Качал эту прожку давненько, года два ей уже пользуюсь, но в гугле только-что дал запрос - http://soft.softodrom.ru/ap/Cobian-Backup-p1786 по первой ссылке выдало. Кстати, версия поновее моей оказалась. Надо бы обновиться ![]() Последний раз редактировалось grimic; 15.06.2009 в 21:48.. Причина: Добавлено сообщение |
|
|
|
| Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение: |
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Вопросы-ответы по ASP.NET 2.0 | Lihonosov | ASP.NET | 9 | 08.01.2011 17:10 |
| Вопросы и Ответы | vasiliy | Stardock и все о нём | 69 | 10.11.2010 19:31 |
| Вопросы и ответы. | igrid | Иконки и Курсоры/Icons & Cursors | 24 | 14.11.2009 23:49 |
| Вопросы и Ответы об ICQ | Deementor | Хакинг в глобальной сети WWW | 32 | 11.03.2008 16:21 |
|
|