Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Windows Server 2008/2008 R2 (http://forum.oszone.net/forumdisplay.php?f=97)
-   -   Резервное копирование клиентских машин. (http://forum.oszone.net/showthread.php?t=330062)

NikolayHAOS 26-09-2017 08:29 2766962

Резервное копирование клиентских машин.
 
Всем доброго времени суток.
Есть сервер под управлением 2008R2, RAID-1 на 2000 гигов.
Нужно с трех машин зеркалить определенные каталоги и делать их резервное копирование, на сервере двух-трех копии файла предполагаю будет достаточно, более старые удалять.
Подскажите как сие организовать. Групповых политик нет.
-----------------
Как я себе это представляю.
В каталоге есть файл New1, он зеркалится по расписанию в аналогичный каталог на сервере, где происходит его бекап Backup1.
При изменении файла New1 происходит его зеркалирование на сервер и его бекап Backup2
Тоже самое и имеем Backup3
В случае заражения или потери данных у нас есть бекапы Backup1 и Backup2 так как в случае шифрования файлов сам файл New1 и его зеркальная копия, а также вероятно Backup3 будут не пригодны для работы. При создании Backup4, Backup1 удаляется.

Поправьте если я не прав.

paranoya 26-09-2017 09:45 2766975

Переносим важные файлы на сервер. Расшариваем папку с этими файлами и даём доступ только нужным людям. На сервере включаем теневые копии для диска с важными файлами. Ночью делаем бекап встроенными в 2008R2 средствами на другой диск.
По вкусу настраиваем временной интервал для создания теневых копий, количество архивов для обычного бекапа, мониторинг и тест архивов.
Как-то так делается правильно.
Есть другой вариант - используя robocopy настраивается задача на рабочих станциях, которая отслеживает изменения исходного каталога и копирует изменения на сервере. На сервере настраивается встроенный бекап, так же как и в первой задаче. Либо всё тем-же robocopy настраивается задача которая копирует файлы в другое место. К этому всему можно прикрутить архивацию любимым архиватором. И так же не забываем проверять сделанные архивы на восстановление.

NikolayHAOS 26-09-2017 16:28 2767063

Цитата:

Цитата paranoya
На сервере включаем теневые копии для диска с важными файлами. Ночью делаем бекап встроенными в 2008R2 средствами на другой диск. »

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

paranoya 26-09-2017 17:03 2767069

Цитата:

Цитата NikolayHAOS
А так как часто данные пересекаются, одни и те же файлы на разных компьютерах, то получается чуть большая защита для свежих файлов. »

Тогда используй второй вариант.

NikolayHAOS 27-09-2017 06:47 2767187

Нашел на дружественном форуме.
Зеркалирование файловых ресурсов утилитой robocopy
Предлагается использовать файл сценария и cmd файл.

Сценарий

Код:

:: Файл настроек задания программы Robocopy
:: Задание: создать зеркало диска D: в подкаталоге D текущего каталога
:: Копируемый каталог
/SD:D:
:: Каталог назначения, указан относительный путь
/DD:.\D
:: Перечень каталогов, которые НЕ надо копировать, по одному в каждой строке
:: Внимание! Исключенные из копирования подкаталоги не удаляются
:: из каталога назначения, если они уже там есть
/XD
D:\RECYCLER
D:\System Volume Information
D:\Temp
:: Запись в файл журнала
/LOG:disk_d.log
/TEE :: также выводить сообщения в консоль
/NP :: не показывать прогресс (%) для каждого файла
:: Опции копирования
/MIR :: Создать зеркало (MIRror)
:: Повтор копирования в случае ошибок
/R:10 :: количество повторов
/W:30 :: время ожидания перед повтором в секундах



CMD

Код:

@echo off
:: запустить настроенные задания (*.rcj), можно несколько подряд
robocopy.exe /job:disk_d
echo.
:: ждать нажатия клавиши

pause

В принципе все понятно, но есть ряд вопросов.
Параметр /SD:D:
изменил на /SD:D:\111 стал копироваться каталог 111, вопрос а как копировать несколько каталогов.
Вот так не прокатило,
/SD:D:\111
/SD:D:\112
/SD:D:\113

Перечисление через запятую тоже, как указать неколько каталогов? если есть русские буквы и пробелы нужны какие либо нюансы?
Цитата:

Цитата paranoya
По вкусу настраиваем временной интервал для создания теневых копий, количество архивов для обычного бекапа, мониторинг и тест архивов. »

А как сие включить? где почитать, а то поиском какая-то лабуда бьется, чтоб так сказать понятным языком.

Iska 27-09-2017 08:05 2767188

NikolayHAOS, самое главное, о чём я не перестаю повторять (и, наверное, некоторых коллег уже «достал» этим), помните: зеркалирование не есть резервное копирование. В случае, если в источнике окажутся повреждённые объекты, они с той же непосредственностью будут лихо отзеркалированы на приёмник, и мы останемся без резервных копий. То есть, резервирование — отдельно, зеркализование — отдельно. Резервные копии должны быть разнесены по времени, дабы не оказаться внезапно у разбитого корыта. В любом случае, использование зеркалирования в качестве замены резервирования очень уязвимо к любым повреждениям или ошибкам источника.

Цитата:

Цитата NikolayHAOS
как указать неколько каталогов? »

Никак. Используйте обходные пути:
  • фильтрацию источника (исключение объектов);
  • один каталог, в котором будут связи каталогов или символические ссылки на потребные каталоги;
  • несколько заданий (/JOB) RoboCopy.
Мне лично видится наиболее простым способом использование одного задания совместно с «/NOSD» и строка примерно такого вида (не рассматривайте в качестве точного написания):
Код:

for %%i in ("Источник1" "Источник2" … "ИсточникN") do robocopy.exe "%%~i" /job:ШаблонЗадания.rcj /ПрочиеПараметры

NikolayHAOS 27-09-2017 12:56 2767248

Цитата:

Цитата Iska
помните: зеркалирование не есть резервное копирование. »

Это я понимаю, посему и делаю сначала зеркалирование, а потом резервное копирование зеркала.
Правда сказать резервная копия будет хранится на том же раид1 что и зеркало, но скажем это больше рассчитано на защиту от вирусов и действий пользователя чем на выход из строя оборудования.
Хотя вот прямо сейчас раид пашет на одном диске второй вышел из строя и еще в процессе покупки :-)

NikolayHAOS 27-09-2017 20:12 2767315

Вот как в итоге сделал.
Скрытый текст

Код:

robocopy C:\111\221 "\\Kanevserver44\Individual\Sekretary\mirror\221" /MIR /Z /R:2 /W:5 /NP /LOG:disk_d.log
robocopy C:\111\222 "\\Kanevserver44\Individual\Sekretary\mirror\222" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log
robocopy C:\111\223 "\\Kanevserver44\Individual\Sekretary\mirror\223" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log
robocopy C:\111\224 "\\Kanevserver44\Individual\Sekretary\mirror\224" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log
robocopy C:\111\225 "\\Kanevserver44\Individual\Sekretary\mirror\225" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log



Мобыть кто покритикует? Каталогов сколько будет еще точно не знаю, но думаю десяток другой наберется.
Если наберется больше, то буду оптимизировать структуру каталогов не смотря на протесты пользователя. :-)

Iska 27-09-2017 21:41 2767328

Цитата:

Цитата NikolayHAOS
Мобыть кто покритикует? »

Ну, тут не критика даже, я бы сказал — некоторая оптимизация, наподобие того, что я предлагал выше.
Скрытый текст
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceRoot=C:\111
set sDestRoot=\\Kanevserver44\Individual\Sekretary\mirror

if exist "%sSourceRoot%\." (
        if exist "%sDestRoot%\." (
                for %%i in ("221" "222" "223" "224" "225") do (
                        if exist "%sSourceRoot%\%%~i\." (
                                if exist "%sDestRoot%\%%~i\." (
                                        robocopy.exe "%sSourceRoot%\%%~i" "%sDestRoot%\%%~i" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log
                                ) else (
                                        echo Can't find destination folder [%sDestRoot%\%%~i].
                                )
                        ) else (
                                echo Can't find source folder [%sSourceRoot%\%%~i].
                        )
                )
        ) else (
                echo Can't find destination root folder [%sDestRoot%].
                exit /b 2
        )
) else (
        echo Can't find source root folder [%sSourceRoot%].
        exit /b 1
)

endlocal
exit /b 0


NikolayHAOS 27-09-2017 23:34 2767343

Тут на ночь глядя удаленно экспериментируя, столкнулся с проблемой русских названий ключевых каталогов, то есть если каталог внутри сохраняемого каталога, то все ОК, а вот если сама папка имеет русские буквы то пошла какая-то фигня.

Iska,
Спасибо. Всегда удивлялся и восхищался людьми для которых сей код открытая книга, хоть и понимаю что и куда, а что не понимаю то догадываюсь, НО самому с нуля мне такое не осилить.
------------------
Строка в самом начале это что-то значит? Или просто что-то типа примечания?
setlocal enableextensions enabledelayedexpansion
Пытался переводить разбивать на отдельные слова, что не внятное переводит гугл.

Iska 28-09-2017 00:24 2767353

Цитата:

Цитата NikolayHAOS
столкнулся с проблемой русских названий ключевых каталогов, то есть если каталог внутри сохраняемого каталога, то все ОК, а вот если сама папка имеет русские буквы то пошла какая-то фигня. »

Сохраняйте пакетный файл в кодировке OEM/866.

Цитата:

Цитата NikolayHAOS
Строка в самом начале это что-то значит? Или просто что-то типа примечания?
setlocal enableextensions enabledelayedexpansion »

См.:
Код:

setlocal /?
Выполняет сразу три действия:
  1. Создаёт локальную область действия переменных окружения.
  2. Разрешает расширения интерпретатора команд (хотя, в общем-то, по умолчанию оно разрешено и так).
  3. Разрешает отложенное раскрытие переменных окружения.
Могу расписать подробнее с примерами, если потребно.

NikolayHAOS 28-09-2017 07:31 2767369

Цитата:

Цитата Iska
Могу расписать подробнее с примерами, если потребно. »

Нет, благодарю.
Сегодня буду разбираться с тем уже что есть.
О результатах отпишу.

Так так, не зря говорят утро вечера мудренее, внимательнее всмотрелся в код.
Это я ради эксперимента, копировал каталоги из общей категории.
А как измениться ваш код если нужно будет скопировать каталоги по следующим путям. (пока для примера по памяти)
D:\Users\Secretary\Desktop\
D:\Users\Secretary\Documents\
D:\Секретарь\
D:\Диск сохранения\

Iska 28-09-2017 09:02 2767378

Цитата:

Цитата NikolayHAOS
если нужно будет скопировать каталоги по следующим путям. (пока для примера по памяти)
D:\Users\Secretary\Desktop\
D:\Users\Secretary\Documents\
D:\Секретарь\
D:\Диск сохранения\ »

Где здесь приёмник, источник? Как будут выглядеть данные пути, в случае простого перечисления в несколько строк Robocopy?

NikolayHAOS 28-09-2017 10:11 2767392

Iska,
Извиняюсь.
Вот.
Код:

robocopy D:\Users\Secretary\Desktop\ "\\Kanevserver44\Individual\Sekretary\mirror\Desktop" /MIR /Z /R:2 /W:5 /NP /LOG:disk_d.log
robocopy D:\Users\Secretary\Documents\ "\\Kanevserver44\Individual\Sekretary\mirror\Documents" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log
robocopy D:\Секретарь\ "\\Kanevserver44\Individual\Sekretary\mirror\Секретарь" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log
robocopy D:\Диск сохранения\ "\\Kanevserver44\Individual\Sekretary\mirror\Диск сохранения" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log

Возможно, и скорее всего, чтобы не путаться с кодировкой, указанные каталоги будут ВСЕ написаны латиницей и без пробелов.
Интересный вопрос возник, по по поводу длинны пути, я помню что тоталкомандер мог копировать даже по ни читаемым путям (более сколько-то там символам) а robocopy может?
Или пути для зеркала нужно минимизировать?
То есть не
\Individual\Sekretary\mirror\Documents
а например
backup\Sekr\Doc

Iska 28-09-2017 11:06 2767404

Цитата:

Цитата NikolayHAOS
Возможно, и скорее всего, чтобы не путаться с кодировкой, указанные каталоги будут ВСЕ написаны латиницей и без пробелов. »

С Far Manager'ом не запутаешься — плагином Editor's settings changer задано, что кодировка пакетных файлов в редакторе будет OEM/866 ;). В любом случае, с этим нет проблем.

Цитата:

Цитата NikolayHAOS
Вот. »

Ясно. Здесь, пожалуй, именно такая запись — в несколько строк — и окажется оптимальной. Разве что для лучшего восприятия я бы сдвигал параметры на одни и те же знакоместа, наподобие:
Скрытый текст

Ну, в принципе можно вынести в отдельную переменную окружения корень целевых каталогов — «\\Kanevserver44\Individual\Sekretary\mirror».

Цитата:

Цитата NikolayHAOS
Интересный вопрос возник, по по поводу длинны пути, я помню что тоталкомандер мог копировать даже по ни читаемым путям (более сколько-то там символам) а robocopy может? »

Может. По умолчанию. Есть параметр для принудительного ограничения:
Цитата:

Код:

              /256 :: Отключить поддержку длинных путей ( > 256 знаков).

Цитата:

Цитата NikolayHAOS
Или пути для зеркала нужно минимизировать? »

Для Robocopy — не нужно.

NikolayHAOS 07-12-2017 13:13 2782944

Встал вопрос о запуске бат файла при завершении работы.
Как более универсальный вариант, был выбран способ, выключения компьютера самим бат файлом.
Хотелось бы чтобы в окне завершения Windows было что-то типа ожидайте... не выключайте компьютер.
Нашел решение прописать в начале файла shutdown -a а в конце shutdown -s -f -t 0
Но желаемого результата не достиг.
Как возможно решить данный вопрос.

Iska 07-12-2017 13:38 2782957

Цитата:

Цитата NikolayHAOS
Встал вопрос о запуске бат файла при завершении работы. »

В этом случае не забывайте о максимальном времени, отведённом по умолчанию групповой политикой на работу таких скриптов.

NikolayHAOS 07-12-2017 13:54 2782964

Iska,
Опа.
Тогда оставлю как есть, запуск банктика заместо выключения компьютера. Пользователей всего трое приучу их по новому выключать компьютер запуском ярлычка на панели.
А потом мобыть допилю каким ни будь информационным сообщением типа работаю идите домой. :-) Но это уже в теме про бат файлы.

Iska 07-12-2017 14:11 2782969

Цитата:

Цитата NikolayHAOS
Опа.
Тогда оставлю как есть, запуск банктика заместо выключения компьютера. »

Это время можно увеличить, смотрите https://social.technet.microsoft.com...indowsserverru :
Цитата:

По умолчанию для выполнения скриптов система дает 10 минут - попробуйте поменять это параметр:
Конфигурация компьютера - администратовные шаблоны - система- сценарии - Максимальное время выполнения сценариев групповой политики
Цитата:

Цитата NikolayHAOS
Пользователей всего трое приучу их по новому выключать компьютер запуском ярлычка на панели. »

Ну, можно и так.

NikolayHAOS 07-12-2017 19:53 2783059

Iska,
Тут подумалось, а ведь исполнение этого бат-файла будет проходить по всем каталогам каждый раз, для сличения данных и до записи новых. А это приведет к чрезмерной нагрузке на диск и существенно снизит его ресурс или нет?
Мобыть делать синхронизацию раз в неделю?

Iska 07-12-2017 22:11 2783075

NikolayHAOS, этот вопрос лучше озвучить в «Железе», указав конкретные обстоятельства.

NikolayHAOS 22-09-2018 08:44 2832463

Всем доброго времени суток.
Наконец-то было сделано первое рабочее зеркалированние каталогов.
Теперь вопрос как на сервере сделать их резервные копии?

mwz 22-09-2018 11:27 2832474

Цитата:

Цитата NikolayHAOS
как на сервере сделать их резервные копии? »

Я бы посмотрел в сторону VeeamAgent.
Можно настраивать в т.ч. автоматическое создание резервных копий и сроки хранения бэкапов.
Бэкапы хранятся с дедупликацией, что требует меньше места при хранении резервных копий.

NikolayHAOS 26-09-2018 06:33 2832926

А русификатора к этому агенту нет?
Вообще странно для современного софта не иметь поддержки русского языка...

alexnasa 04-10-2018 19:41 2834441

Прошу помощи! http://forum.oszone.net/post-2834094-12.html

NikolayHAOS 29-10-2018 14:19 2838254

Всем доброго времени суток.

Отлично работает вот такой bat файл.
Скрытый текст
Код:

robocopy D:\Users\Secretary\Desktop\  "\\Kanevserver44\Individual\Sekretary\mirror\Desktop"          /MIR /Z /R:2 /W:5 /NP /LOG:disk_d.log
robocopy D:\Users\Secretary\Documents\ "\\Kanevserver44\Individual\Sekretary\mirror\Documents"        /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log
robocopy D:\Secretary\                "\\Kanevserver44\Individual\Sekretary\mirror\Secretary"        /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log
robocopy D:\Disk_sohraneniya\          "\\Kanevserver44\Individual\Sekretary\mirror\Disk_sohraneniya" /MIR /Z /R:2 /W:5 /NP /LOG+:disk_d.log


Теперь вопрос как сие автоматизировать?
Пробовал добавить в планировщик заданий указав запускать бат, мелькает окно cmd и ничего не происходит.
Никаких логов тоже не предоставляется, подскажите как правильно сделать.

mwz 30-10-2018 11:26 2838392

Цитата:

Цитата NikolayHAOS
мелькает окно cmd и ничего не происходит »

Временно поставьте последней строкой командного файла ("батника") команду pause и посмотрите в его окне (которое теперь уже не закроется* пока вы не нажмёте в нём любую клавишу), какие ошибки появляются при его выполнении.

PS
*
Не закроется — если батник выполняется до конца. Если же выход из него происходит до достижения последней строки — перемещайте эту команду по тексту батника начиная с положения после первой команды батника пока не будет найдено, где происходит выход.

NikolayHAOS 30-10-2018 13:34 2838412

mwz, Вы просто гений...

Iska 30-10-2018 18:45 2838461

Цитата:

Цитата NikolayHAOS
Пробовал добавить в планировщик заданий указав запускать бат, »

Как именно добавляли? Перечислите все детали задания.

NikolayHAOS 30-10-2018 18:51 2838463

Цитата:

Цитата Iska
Как именно добавляли? »

Да как обычно это делается для любой программы, не пошло, попробовал с наивысшими правами тоже не пошло.
Не был сегодня на работе, как попробую с паузой то опишусь.

Iska 30-10-2018 19:03 2838466

Цитата:

Цитата NikolayHAOS
как попробую с паузой то опишусь. »

Да, начните именно с этого.

NikolayHAOS 31-10-2018 15:36 2838658

Вопрос решен.
Еще раз спасибо mwz, за дельный совет.
З.Ы.Заминка оказалась в отсутствии прав доступа, а она вытекала из отсутствия рабочего каталога (откуда мне было знать что планировщик будет вызывать BAT файл из директории C:\Windows\System32, куда у него действительно нет прав записи, так как запускается под простым пользователем) указал в качестве рабочего каталога путь где лежит сам BAT файл, и проблема ушла.

mwz 31-10-2018 18:43 2838717

Цитата:

Цитата NikolayHAOS
указал в качестве рабочего каталога путь где лежит сам BAT файл »

В явном виде — или по феншую, подстановкой %~dp0 (при этом подставляется также замыкающий слэш каталога, т.е. \ в конце) , при которой сам же батник и определяет, где он лежит, а затем подставляет себе этот каталог?

Iska 31-10-2018 18:45 2838720

Цитата:

Цитата NikolayHAOS
откуда мне было знать что планировщик будет вызывать BAT файл из директории C:\Windows\System32 »

Это как бы завсегда так было — текущим каталогом по умолчанию является каталог приложения (для пакетных файлов это содержимое %comspec%). Для пакетных файлов есть ещё одно «приятное» умолчание: Урок bat-аники - RSDN https://rsdn.org/article/winshell/batanyca.xml, примечание к разделу «Как определить имя каталога, в котором находится запущенный командный файл?».

mwz 31-10-2018 19:51 2838740

Iska, кстати, там не учли, что подставляется также и слэш, завершающий путь каталога при %~dp0 — именно то, что я оговорил специально. А сдвоенный слэш, как получается в статье после данной подстановки и явного указания этого слэша после подстановки, тянет за собой проблемы.

Iska 31-10-2018 20:06 2838745

mwz, не понял. Там проблема была в том, что а) командный процессор по умолчанию не поддерживает UNC-пути в качестве текущего каталога (регулируется параметром DisableUNCCheck раздела HKEY_CURRENT_USER\Software\Microsoft\Command Processor) и б) командный процессор при обнаружении таких попыток устанавливает текущим каталогом каталог %SystemRoot%\System32.

Двойные (и множественные )слэши переносятся командным процессором нормально:
Скрытый текст

mwz 31-10-2018 22:10 2838775

Iska, да я понял, в чём была проблема. :)
И то, что
Цитата:

Цитата Iska
при обнаружении таких попыток устанавливает текущим каталогом каталог %SystemRoot%\System32 »

— считаю что это ни в какие ворота не лезет.

Просто споткнулся на
"%~dp0\packagebin.exe" --recursive-search=yes --files-mask=exe,dll,pdb,obj ^
— помня, что в некоторых случаях такая запись проблемы всё же вызывает (напарывался когда-то).


Время: 18:34.

Время: 18:34.
© OSzone.net 2001-