![]() |
Выполнение задачи со сдвигом.
Через планировщик запускаю скрипт копирования файлов. Копирование идет через узкий канал. Поэтому хотелось иметь сдвиг по времени. Или возможность запускать скрипт в 50 случаев. Скажем запускаем скрипт получаем переменную рандом и если она меньше Х скрипт запускаем. Если не повезет и скрипт не запустится, то нечего страшного – просто он запустится при старте виндовс и будут тормоза 15-45 мин (чем больше одновременно включат чем дольше). В целом так сейчас и происходит ((. Дабы файлы месятся в источнике раз в 1-2 месяца. Но все ровно не удобно коллапс создается по утрам.
написал тестовый но переменная рандом не меняется(( Код:
FOR /L %%a IN (0,1,1000) DO ( |
Цитата:
|
krasavchik0, Вы не могли бы перевести на русский? Ваша задача непонятна, а выбранное Вами решение нуждается в обосновании.
|
Цитата:
Но хочу "дергать" раз в 3 часа по времени. Так как разливаю по АД то индивидуально писать разное время всем не интересно. Да скрипт в bat банальный это запускает планировщиком "При запуске" Код:
robocopy "\\dc\distr\ххх" "C:\Program Files (x86)\хххх" /MIR /Z /R:3 /W:10 /LOG:%LogLocationDir%\%NameBat%\%date%_%NameBat%_%computername%_%username%_dd.log "Случайная величина, добавляемая к интервалу времени обновления во избежание одновременных запросов групповой политики всеми клиентами. " Код:
robocopy "\\dom\distr\ххх" "C:\Program Files (x86)\хххх" /E /Z /R:3 /W:10 /LOG:%LogLocationDir%\%NameBat%\%date%_%NameBat%_%computername%_%username%_dd.log Цитата:
Вот и хотел в скрипте делать аналог орла и решки. Орел запускать, решка нет. Путем вероятностей сделать, что бы скорее всего скрипт запустился у 10 (Опять переживу если он запустится всего 5 или 35% ) процентов пользователей. Супер точность не нужна. При этом я понимаю и допускаю, что могут быть случае когда на одном ПК выпал орел за неделю 10 раз. А у другого не разу... не страшно, ну не повезло пользователю. Будет ждать долго загрузки((. |
krasavchik0, %RANDOM% здесь точно не пригоден. Он слишком «псевдо» для этого. Возьмите какой-нибудь WSH или PoSH. Например, WSH/vbscript:
Код:
Option Explicit Код:
cscript.exe //nologo "Sample.vbs" 50 && robocopy "\\dc\distr\ххх" "C:\Program Files (x86)\хххх" /MIR /Z /R:3 /W:10 /LOG:%LogLocationDir%\%NameBat%\%date%_%NameBat%_%computername%_%username%_dd.log |
Цитата:
|
krasavchik0, Ваша задача не очень понятна, но внесение вероятности - угарная идея, которая скорее всего приведёт к головной боли :) . Попробую предложить нечто более предсказуемое.
1. В идеале, как я понял, все компьютеры должны обновиться за 10 дней (10%*10дней=100%), то есть каждый компьютер должен обновиться раз в 10 дней (в идеале). 2. Каждый компьютер имеет IP, последняя цифра которого меняется от 0 до 9 3. Каждый день характеризуется датой, вторая цифра в значении дня меняется от 0 до 9 Сравним п.2 и п.3, при равенстве цифры дня и цифры IP запустим что надо.
ИМХО, такой процесс более предсказуем. Код:
@Echo Off Сколько машин должны сделать копии? Сколько машин одновременно могут, на Ваш взгляд, это делать? И сколько при этом для них потребуется времени? Как вариант, если компы включаются приблизительно в одно время, делать задержку копирования в часы для групп компов в зависимости от, например, того же IP. |
Цитата:
Цитата:
Цитата:
От 10 до 50 минут примерно. В зависимости от шейпера. Цитата:
Вообщем действую по старинке обновляю папку вечером и все ПК в ребут. К утру будет все ок)). |
krasavchik0,
Цитата:
|
Время: 04:42. |
Время: 04:42.
© OSzone.net 2001-