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

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

alef2474 20-09-2013 12:06 2220918

Запуск bat-файла в планировщике
 
Попытался вставить в планировщик(Task Scheduler) bat-файл ежедневного копирования архива на другой диск.
Bat-файл состоит из одной строчки:
xcopy "d:\arhiv\acc\New folder\%date:~0,2%%date:~3,2%%date:~8,2%.zip" z:\arc

Файл архива заблаговременно нормально создается в папке-источнике в виде DDMMYY.zip (тоже через планировщик с "похожим" bat-файлом)
Если этот bat-файл запускать вручную (он на раб столе админа), то он нормально срабатывает: возникает черное окно комстроки, которое висит полминуты пока копируется файл, потом оно исчезает, копирование происходит.

Если же создано задание на выполнение этого файла в планировщике, то задание вроде выполняется: в истории заданий пишется Task triggered, Task Started, Action Started, Created Task Process, Action Completed, Task Completed но никакого копирования не происходит, причем Action Completed successfully with return code 4. (4 мне кажется плохой код? нормальный -0)

В задании для подстраховки я задавал и пароль сисадмина, и Run with highest privileges, и Run whether user logged on or not. Запускал и по времени и вручную - результат один, копирование не выполняется. Причем иногда, когда запускаешь в планировщике вручную, то задание зависает на статусе Running(без фиксации запуска в истории), а иногда просто остается Ready без реального выполнения копирования, но с записью в историю о выполнении.

Проверил я и версию, что имя файла заданное через %date не передается планировщиком, создал аналогичный bat-файл, котором
xcopy "d:\arhiv\acc\New folder\200913.zip" z:\arc
С эти файлом все так же, вручную копирует, а в планировщике "успешно" выполняется, но не копирует.

Запускал Process Monitor параллельно с заданием: там много операций выскакивает, но все с результатом SUCCESS, кроме одной
cmd.exe RegQueryValue HKLM\Software\Microsoft\Windows NT\CurrentVersion\GRE_Initialize\DisableMetaFiles NAME NOT FOUND Length:20


Вопрос: Task Sheduler по природе глючный? Или я что-то неправильно делаю? И что можно использовать вместо него бесплатного, если глючный?
Механизм AT-команд - это другое чем Task Sсheduler или одно и то же и нет смысла пробовать?

volodija@vk 20-09-2013 13:13 2220952

Советую не насиловать себя, а поставить Cobian Backup, там всё очень просто и гибко настраивается.

alef2474 20-09-2013 15:14 2221012

Цитата:

Цитата volodija@vk
Советую не насиловать себя, а поставить Cobian Backup, там всё очень просто и гибко настраивается. »

Т.е. Вы подтверждаете, что планировщик - глючный?
Нашел Cobian Backup даже на oszone.net
http://soft.oszone.net/program/3321/Cobian_Backup/

Но, похоже, что Cobian Backup не имеет функции запуска bat-файла по расписанию или копирования файлов с изменяющимся со временем именем.

unname1983@vk 20-09-2013 16:19 2221031

alef2474, От какого пользователя запускается задание? И что с правами пользователя от которого это задание запускается?
volodija@vk, запускается с помощью штатного планировщика, бэкап всей системы из трех или четырех батников, работает все без проблем....зачем ставить что-то если стандартный планировщик вполне справляется со своими функциями.

alef2474 20-09-2013 16:22 2221032

Цитата:

Цитата unname1983@vk
От какого пользователя запускается задание? И что с правами пользователя от которого это задание запускается? »

С этим все в порядке, имхо, запускается с правами доменного админа на доменном контроллере 2008R2.
А проблема как раз в работе штатного планировщика. Может он не все команды может выполнять, например, xcopy?
или ему путь к выполняемой программе надо прописывать в bat?

unname1983@vk 20-09-2013 16:32 2221036

alef2474, да не...что значит не все...запускает то система, а не планировщик, планировщик просто запускает в определенное время с определенными правами.
Посмотри в локальной политике контроллера, "Вход в качестве пакетного задания" - какие пользователи у тебя там?

Petya V4sechkin 20-09-2013 18:03 2221069

Цитата:

Цитата alef2474
копирования архива на другой диск

Что за другой диск?

alef2474 20-09-2013 18:23 2221077

Цитата:

Цитата Petya V4sechkin
Что за другой диск? »

Другой диск - это сетевой накопитель D-link DNS-325, подключенный как диск z: к серверу под учеткой доменного админа.
(Понятно, что надо копировать с этого комп-а на что-то другое сетевое.)
Может UNC имя надо писать в команде, типа \\х.х.х.х\base ?
Диск (и папка base) нормально открывается без всяких паролей с любого комп-а в подсети, даже не включенного в домен.
Опять же повторю: вручную bat-файл нормально запускается и копирует.

Цитата:

Цитата unname1983@vk
Посмотри в локальной политике контроллера, "Вход в качестве пакетного задания" - какие пользователи у тебя там? »

Где это надо смотреть? Что запускать и в какой ветке?(по-английски) Если Вы про gpmc и ddcp, то там все по-умолчанию стоит,
я не "балуюсь" групповыми политиками. В compConf/userConf-preferences-CPS-sheduledTasks пусто. Если secpol.msc, то где?
Для эксперимента выбрал на вкладке General задания пользователя SYSTEM и запустил вручную. Опять в истории сделались записи об успехах, ничего не скопировалось, а статус задания еще завис на Running, пришлось отключать.

Petya V4sechkin 20-09-2013 18:25 2221079

Цитата:

Цитата alef2474
Другой диск - это сетевой накопитель

Но ведь подключение сетевых дисков существует только для текущего пользователя.

alef2474 20-09-2013 18:42 2221084

Цитата:

Цитата Petya V4sechkin
Но ведь подключение сетевых дисков существует только для текущего пользователя »

У меня от этого самого текущего пользователя - доменного админа задание и запускается и пароль я его ввожу при сохранении задания в Task Scheduler. Там же на вкладке General(Общая) стоит пользователь и кнопка для его замены, если надо.
Может UNC имя надо писать в команде, типа \\х.х.х.х\base ? Попробовал - в случае UNC даже вручную без планировщика ничего не запускается - Invalid Drive Specification (наверно в xcopy нельзя UNC)

Petya V4sechkin 20-09-2013 18:51 2221087

alef2474, можете вставить простую команду:
Код:

dir z:\ >%temp%\log1.txt 2>%temp%\log2.txt
и смотреть содержимое log1.txt и log2.txt в папке Temp.

alef2474 20-09-2013 19:12 2221102

Цитата:

Цитата Petya V4sechkin
и смотреть содержимое log1.txt и log2.txt в папке Temp. »

Вставил dir перед xcopy в bat-файл и получил
Если смотреть в c:\windows\temp,
то log1.txt - пустой создался. А log2.txt с текстом The system cannot find the path specified.

А если смотреть в c:\users\Administrator.Server\AppData\Local\Temp\22 то
то log1.txt - с нормальным показом дерева на z: по команде dir, а log2.txt - пустой создался

Непонятно, где смотреть, просто поиск запустил по С:

И что результат означает?

Petya V4sechkin 20-09-2013 19:16 2221104

alef2474, смотреть файлы, которые создаются при выполнении задания в планировщике.

alef2474 20-09-2013 19:28 2221108

Цитата:

Цитата Petya V4sechkin
alef2474, смотреть файлы, которые создаются при выполнении задания в планировщике. »

При выполнении bat в планировщике(там вручную запускаю правой кнопкой и Run) нахожу в c:\windows\temp,
log1.txt - пустой создался. А log2.txt с текстом The system cannot find the path specified.
(после предыдущих экспериментов я все удалил)

Те другие, видимо, создавались, когда я запускал без планировщика.

Petya V4sechkin 20-09-2013 20:34 2221125

Цитата:

Цитата alef2474
The system cannot find the path specified

Нету диска Z там.

Цитата:

Цитата alef2474
Может UNC имя надо писать в команде, типа \\х.х.х.х\base ? Попробовал - в случае UNC даже вручную без планировщика ничего не запускается - Invalid Drive Specification

Попробуйте подключить перед копированием:
Код:

net use z: \\х.х.х.х\шара

alef2474 20-09-2013 21:29 2221151

Цитата:

Цитата Petya V4sechkin
Нету диска Z там. »

Цитата:

Цитата Petya V4sechkin
Попробуйте подключить перед копированием: »

Диск есть. Если я даю net use z: ... то выдается ошибка The local device name already in use
И сам диск виден в проводнике и около него написано Volume_1(x.x.x.x)(Z : )

Получается странная ситуация, что действительно диск подключен от имени Administrator.Server, а не Administrator.Domain (как Вы предположили ранее)
Хотя я захожу на сервер под логином domain\administrator , но моя папка в c:\users оказывается имеет имя Administrator.Server вместо Administrator.Domain как должно бы было быть, наверно. Потому что у дополнительно созданного администратора домена domain\admin2
она имеет имя Admin2.Domain

Задание в планировщике запускается от имени domain\administrator, а для этого имени выходит диск z: не создан, т.к. я вообще не могу зайти под эти именем, т.к. все время попадаю на другое имя при заходе.
Причем от имени того недоступного мне администратора запускается bat файл. Такая получается двойственность нахождения в системе: под одним именем подключаются диски и локально нормально запускаются программы, а под другим именем создаются задания в планировщике. Как эту двойственность устранить - не знаю.

В результате я понял еще свою странную ошибку в UNC имени и добился запуска bat-файла в планировщике.
xcopy воспринимает UNC имена, но для моего сетевого накопителя это UNC надо писать как \\x.x.x.x\volume_1\base
т.е. после ip повторять еще как бы netbios имя. Мало того в xcopy надо было добавить ключ /Y, т.к. где-то запоминалось имя и теневой bat файл планировщика спрашивал, перезаписывать ли его и зависал на этом месте, не копируя, о чем я писал.

С использованием UNC я ухожу от невозможности задать букву для диска. Разве что можно попробовать зайти другим админом и от него задать и букву Z и задание в планировщике. Но можно ли мешать задания от разных пользователей не знаю.

Спасибо за помощь.

James Marsh 22-09-2013 11:08 2221817

1. Если NAS настраивали прямо с КД, то отключите нас от сети и снесите с кд приблуду для управления насом, удалятся те самые злополучные непонятные
Цитата:

Цитата alef2474
Volume_1(x.x.x.x)(Z : ) »

2. На насе настраивате шары так, что бы пойдя по пути Пуск-Выполнить-\\х.х.х.х было видно список сетевых папок (как на обычном файл сервере).
3. Зайдите консольно (подключив моник и клаву+мышь) на сервер под доменным админом и примонтируйте сетевой диск Z (Y,X какой нужен) в ту сетевую папку которая нужна.
4. Все задание выполняйте одним пакетным файлом (архивация и копирование). В качестве параметров пишите ПОЛНЫЕ пути файлов, потому как планировщик запускает cmd.ехе в только ему известном месте. В начале пакетного файла на всякий случай пишите команду примонтировать сетевой диск (вдруг что случилось и сетевой диск отвалился).
5. п3. получен благодаря личным наблюдениям: если монтировать сетевые диски и писать задачи в планировщик через рдп (mstsc /console, mstsc /admin) то они могут не выполняться (хотя должны).
6. Если у вас нас рядом с сервером (по сети) то в пакетном файле архивируйте прямо на него (куда - диск зе).
Чем проще цепочка архивирования, тем она надежнее.


Время: 02:24.

Время: 02:24.
© OSzone.net 2001-