Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
26.03.2008, 15:29 | #1 |
ViP
Пол: Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
|
Средства и способы бэкапа (вопросы и ответы)
Вопрос создания архивных копий системы и данных весьма важен в работе сисадмина. На моей памяти есть как провальные ситуации, когда грохались базы 1С клиентов (не мной ), так и случаи дарения коньяка и прочих плюшек за восстановление случайно или умышленно утраченной пользователями информации. В этой теме предлагаю обсуждать всевозможные способы создания архивных копий и точек восстановления пользовательских данных, состояния ОС, служб и серверов. Обсуждаются именно самодельные/нестандартные и иные способы. ПО для бэкапа обсуждается в разделе Архиваторы, системные и тест прог Последний раз редактировалось PLAstic; 11.11.2009 в 18:31.. |
Эти 4 пользователя(ей) сказали cпасибо за это полезное сообщение: |
Реклама: | теплоход а рублев | gem tester presidium | пластиковый диффузор дпу-м 100 дпу-м 100 | зоодепо | как из моё дело в 1с перенести документы |
05.05.2009, 13:32 | #2 |
Пользователь
Пол: Регистрация: 10.10.2007
Сообщений: 126
Репутация: 37
|
Батник для бэкапа
Помогите написать батник, для резервного копирования папок. ...или может у кого готовые есть?
|
05.05.2009, 15:43 | #3 |
Постоялец
Пол: Регистрация: 19.10.2006
Сообщений: 238
Репутация: 111
|
Re: Батник для бэкапа
xcopy /? в командной строке
увидишь все доступные параметры ... и вперед ... хотя ,чем стандартные средства винды не устраивают("Архивация данных" в разделе Служебные ) ? я использую это только для автоматизации некоторых процессов Последний раз редактировалось cruizer; 05.05.2009 в 15:50.. |
Сказали спасибо: |
05.05.2009, 17:14 | #4 |
ViP
Пол: Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
|
Re: Батник для бэкапа
Оба примера скриптов - файлы *.vbs
Класть можно куда угодно, шедулить на ежедневное исполнение. Ежемесячное архивирование текстовых логов ISA, IIS и MDaemon Добавлено через 4 минуты Архивирование баз 1С Архивы создаются по маске NNNNNyyyymmdd, где NNNNN - название архива yyyymmdd - формат даты в виде год, месяц, день. При такой форме даты архивы упорядочены в хронологическом порядке. Последний раз редактировалось PLAstic; 05.05.2009 в 17:26.. Причина: Добавлено сообщение |
Эти 3 пользователя(ей) сказали cпасибо за это полезное сообщение: |
07.05.2009, 11:24 | #5 |
Пользователь
Пол: Регистрация: 29.01.2009
Сообщений: 34
Репутация: 4
|
Re: Батник для бэкапа
С помощь RAR в батник строки
"C:\Program Files\WinRaR\rar" a -ag -r -dh E:\Arhiv\2009.rar D:\ архивируем с датой где архив что архивируем |
Сказали спасибо: |
07.05.2009, 14:10 | #6 |
Пользователь
Пол: Регистрация: 10.10.2007
Сообщений: 126
Репутация: 37
|
Re: Батник для бэкапа
Спасибо, разберусь.
Еще вопрос: Как сделать, чтоб в названии архива присутствовала дата его создания? |
07.05.2009, 16:11 | #7 |
ViP
Пол: Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
|
Re: Батник для бэкапа
|
03.06.2009, 15:17 | #8 |
Неактивный пользователь
Пол: Регистрация: 20.11.2007
Сообщений: 10
Репутация: 3
|
Re: Батник для бэкапа
Гм.. (достает старую, еще прошлого века папочку)
Лучше всего вот так: 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 в 15:19.. |
Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение: |
05.06.2009, 12:35 | #9 |
Неактивный пользователь
Регистрация: 31.10.2008
Сообщений: 1
Репутация: 0
|
Re: Батник для бэкапа
Ckpyt а еще чтото есть?
|
05.06.2009, 12:49 | #10 | |||||||||||||||||||||||
Re: Батник для бэкапа
Есть ваша фантазия, и google.com +Start->Run->[hh ntcmds.chm]
__________________
This world is very interesting, it feels free, but this freedom must be hacked. (с)
|
||||||||||||||||||||||||
05.06.2009, 13:02 | #11 | |||||||||||||||||||||||
ViP
Пол: Регистрация: 18.01.2006
Адрес: MSK RU
Сообщений: 2,798
Репутация: 1164
|
Re: Батник для бэкапа
Если это реальный интерес, а не набор постов, то скажу мнение стороннего наблюдателя.
|
|||||||||||||||||||||||
05.06.2009, 13:40 | #12 |
Неактивный пользователь
Пол: Регистрация: 04.01.2007
Сообщений: 9
Репутация: 10
|
Re: Батник для бэкапа
sergeysnl,
а чем, собственно, не устраивает стандартный ntbackup? шедулер есть, параметры коммандной строки есть, проверка целостности есть... а чтоб файл был с сегодняшней датой - простейший perl скрипт и в нем формировать имя файла и запускать ntbackup |
12.06.2009, 18:50 | #13 |
Неактивный пользователь
Пол: Регистрация: 20.11.2007
Сообщений: 10
Репутация: 3
|
Re: Батник для бэкапа
а)количество копий можно наделать вручную сколько хочешь. Простым копированием блоков до нужного числа. б)да, нет. Файл древний, программировать тогда не умел. в)а вот и нет. Специально для этого в папке с копиями лежит файл с номером последней версии(rez*.rez) г)доделать архивирование достаточно легко. Но вообще, файл сделан для одной, не сетевой машины. Т.е. к машине имеют доступ только те, кто за нее садится. П.с. вариант с ntbackupom лично меня не устраивал и не устраивает потому что нет возможности залезть в архив и вытащить оттуда только нужный файл. П.п.с на текущий момент использую собственноручно написанную программу для резервного копирования. но, естественно, выкладывать в открытый доступ программу, весом в полторы тысячи строк, я просто не буду :-) |
15.06.2009, 10:25 | #14 |
Неактивный пользователь
Пол: Регистрация: 04.01.2007
Сообщений: 9
Репутация: 10
|
Re: Батник для бэкапа
Ckpyt,
ну не знаю, чего ты там наваял на полторы тысячи строк, но почти все подобные задачи решаются перловым скриптом на полторы сотни строк, 2/3 которых печать в лог-файл Вот конкретный рабочий скрипт, который выполняет все нужные действия. Стопит оракловую базу, стопит сервисы, архивирует RAR все нужное содержимое, а потом все обратно стартут. Вешаешь все или на шедулер по команде at или ставишь nncron. Все что надо, изредка посматривать в логи. Те папки которые нужно архивировать указываютсяв файле backup.lst Код:
#!/Perl/bin/perl # # Скрипт создания offline архивной копии базы Oracle Informatica # # Author: Merlin Cori # # [email protected] # # Ключи запуска: # - отсутствуют # 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 = "[email protected]"; $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 => '[email protected]', 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 в 10:51.. |
Сказали спасибо: |
15.06.2009, 22:24 | #15 |
Неактивный пользователь
Пол: Регистрация: 30.05.2008
Сообщений: 45
Репутация: 3
|
Re: Батник для бэкапа
простенький бекап для копирования базы 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 в 22: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 |
|
|