У меня два идентичных сервера под управлением Windows 2008 R2. Я использую репликацию DFS, чтобы синхронизировать несколько общих ресурсов между двумя серверами. Каждый сервер является контроллером домена, и каждый сервер может работать в случае, если другой становится недоступным, включая DHCP, DNS и ряд других вещей, на которые мы полагаемся.
У нас также есть удаленная рабочая станция, которая создает серию выходных файлов и помещает их в общий ресурс, используя пространство имен DFS. Это в основном для целей резервного копирования и отчетности.
У меня есть пакетное задание, которое я могу запланировать для запуска каждую ночь, которое проверяет эти файлы, выполняет с ними ряд действий, а затем удаляет файлы резервных копий старше 30 дней (если они не обрабатываются) в качестве одной из последних задач. Это единый сценарий.
Я бы хотел, чтобы эта задача выполнялась только один раз на одном из серверов, а затем выполнялась на другом сервере, если «предпочтительный» сервер недоступен. Возможна ли такая возможность? Могут ли два или более сервера WIN2K8 справиться с этой ситуацией?
Я мог бы запускать задание на обоих серверах каждую ночь, поскольку это безопасно для повторного входа, но если бы я это сделал, то, вероятно, вызвал бы головные боли репликации DFS; рассматриваемая доля находится в конфигурации с полной сеткой.
Если это невозможно, какие-либо хитрые уловки, чтобы заставить эту работу работать, или есть какие-либо сторонние инструменты.
Одна из идей - просто запустить задание с рабочей станции, на которой файлы данных создаются и копируются на серверы. Единственная проблема при этом заключается в том, что это рабочая станция пользователя, и они иногда забывают и выключают машину ночью, предотвращая обработку ежедневных отчетов.
Да.
Создайте задание для ссылки на соответствующее пространство имен DFS вместо конкретного сервера. Он будет удален независимо от того, какой сервер является активной целью DFS, с машины, на которой он запущен (если вы запустите его на одном из серверов, очевидно, что этот сервер должен быть нацелен на себя), и удаление будет реплицировано на другой через DFS.
Поэтому вместо удаления скажите C:\somefolder\somefile.foo
вы бы удалили \\dfsnamespaceforsomefolder\somefile.foo
Конечно, если вы запустите это на одном из серверов DFS, и он станет недоступным, задача, вероятно, не сможет успешно стартовать на другом сервере DFS из-за недоступности компьютера, на котором выполняется задача. Хакерским обходным путем для этого было бы, чтобы ваш сценарий на одном из серверов проверял, доступен ли другой сервер перед выполнением, и настраивал эту задачу для запуска после первого. Если другой сервер доступен, break
, если недоступен, запустить скрипт.