|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Выполнение задачи со сдвигом. |
|
CMD/BAT - Выполнение задачи со сдвигом.
|
Пользователь Сообщения: 114 |
Через планировщик запускаю скрипт копирования файлов. Копирование идет через узкий канал. Поэтому хотелось иметь сдвиг по времени. Или возможность запускать скрипт в 50 случаев. Скажем запускаем скрипт получаем переменную рандом и если она меньше Х скрипт запускаем. Если не повезет и скрипт не запустится, то нечего страшного – просто он запустится при старте виндовс и будут тормоза 15-45 мин (чем больше одновременно включат чем дольше). В целом так сейчас и происходит ((. Дабы файлы месятся в источнике раз в 1-2 месяца. Но все ровно не удобно коллапс создается по утрам.
написал тестовый но переменная рандом не меняется(( |
|
Отправлено: 18:21, 16-10-2017 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата krasavchik0:
|
|
------- Отправлено: 18:58, 16-10-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать krasavchik0, Вы не могли бы перевести на русский? Ваша задача непонятна, а выбранное Вами решение нуждается в обосновании.
|
Отправлено: 19:05, 16-10-2017 | #3 |
Пользователь Сообщения: 114
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Но хочу "дергать" раз в 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 Цитата Iska:
Вот и хотел в скрипте делать аналог орла и решки. Орел запускать, решка нет. Путем вероятностей сделать, что бы скорее всего скрипт запустился у 10 (Опять переживу если он запустится всего 5 или 35% ) процентов пользователей. Супер точность не нужна. При этом я понимаю и допускаю, что могут быть случае когда на одном ПК выпал орел за неделю 10 раз. А у другого не разу... не страшно, ну не повезло пользователю. Будет ждать долго загрузки((. |
||
Отправлено: 20:02, 16-10-2017 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать krasavchik0, %RANDOM% здесь точно не пригоден. Он слишком «псевдо» для этого. Возьмите какой-нибудь WSH или PoSH. Например, WSH/vbscript:
Option Explicit Randomize Timer If Int(101 * Rnd()) <= Int(WScript.Arguments.Item(0)) Then WScript.Quit 0 Else WScript.Quit 1 End If где «50» — значение процента вероятности срабатывания. Например, значение «20» приведёт к тому, что robocopy будет исполняться в одном случае из пяти. |
|
Отправлено: 21:15, 16-10-2017 | #5 |
Пользователь Сообщения: 114
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 15:52, 17-10-2017 | #6 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать krasavchik0, Ваша задача не очень понятна, но внесение вероятности - угарная идея, которая скорее всего приведёт к головной боли
![]() 1. В идеале, как я понял, все компьютеры должны обновиться за 10 дней (10%*10дней=100%), то есть каждый компьютер должен обновиться раз в 10 дней (в идеале). 2. Каждый компьютер имеет IP, последняя цифра которого меняется от 0 до 9 3. Каждый день характеризуется датой, вторая цифра в значении дня меняется от 0 до 9 Сравним п.2 и п.3, при равенстве цифры дня и цифры IP запустим что надо.
ИМХО, такой процесс более предсказуем. @Echo Off CLS Call :IPping "LastIP" Call :DaySecond "Day2" If "%LastIP%"=="%Day2%" ( Echo: Запускаем синхренезацию :) ) Else ( Echo Для этого компа "%LastIP%" сегодня "%Day2%" ничего не запускаем ) GoTo :Eof :IPping Set "%~1=" FOR /F "tokens=2 delims=[]" %%b in ('ping -4 -n 1 %ComputerName%') Do If Not "%%a"=="" (set _IP=%%b &GoTo :Continue) GoTo :Eof :Continue Set "_IP=%_IP: =%" Set "%~1=%_IP:~-1%" GoTo :Eof :DaySecond Set "%~1=%Date:~1,1% GoTo :Eof Сколько машин должны сделать копии? Сколько машин одновременно могут, на Ваш взгляд, это делать? И сколько при этом для них потребуется времени? Как вариант, если компы включаются приблизительно в одно время, делать задержку копирования в часы для групп компов в зависимости от, например, того же IP. |
------- Последний раз редактировалось megaloman, 17-10-2017 в 16:39. Отправлено: 16:13, 17-10-2017 | #7 |
Пользователь Сообщения: 114
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Цитата megaloman:
Цитата megaloman:
От 10 до 50 минут примерно. В зависимости от шейпера. Цитата megaloman:
Вообщем действую по старинке обновляю папку вечером и все ПК в ребут. К утру будет все ок)). |
||||
Отправлено: 18:58, 17-10-2017 | #8 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать krasavchik0,
Цитата krasavchik0:
|
|
------- Отправлено: 20:11, 17-10-2017 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Скрытое выполнение задачи через hidcon | LightSoul | Скриптовые языки администрирования Windows | 1 | 13-09-2017 13:57 | |
Занимательные задачи | SOKRAT | Флейм | 223 | 26-09-2012 09:26 | |
V. 2010 - Завершение задачи | 2poisonS | Microsoft Exchange Server | 0 | 16-09-2010 10:38 | |
Выполнение манипуляций со всеми компьютерами в группе безопасности | madmax24 | Microsoft Windows NT/2000/2003 | 8 | 21-02-2008 12:18 | |
Аналитические задачи | noname00.pas | Программирование и базы данных | 4 | 12-12-2001 15:04 |
|