Войти

Показать полную графическую версию : [решено] Выполнение команды в указанный только промежуток времени


rudimko
27-01-2014, 14:57
Доброго дня.
Коллеги, есть сценарий, который запускается 1 раз в минуту шедулером, и он соодержит условие, которое необходимо выполнять только в указанный промежуток времени.

Например:
if (время с 8:00 до 21:00 с пн-пт) или (время с 10:00 до 20:00 c сб-вс)
{
"Выполняем сценарий"
}

ну вот примерно по такому принципу.

Kazun
27-01-2014, 15:10
$date = Get-Date
if( ((1..5 -eq $date.DayOfWeek) -and (8..21 -eq $date.Hour)) -or ((0,6 -contains $date.DayOfWeek) -and (10..20 -eq $date.Hour)) )

rudimko
27-01-2014, 16:36
Спасибо.

Foreigner
27-01-2014, 22:03
Как вариант:

$date = get-date -uformat %u:%R

switch -regex ($date) {

'[1-5]:([89]|1[0-9]|20):[0-5][0-9]' { $a = $true }
'[06]:1[0-9]:[0-5][0-9]' { $b = $true }

}

if ($a) { "что-то делаем в будний день" }
elseif ($b) { "что-то делаем в выходной день" }
else { "не рабочее время" }

Iska
28-01-2014, 00:27
Интересно, что в скрипте? Не будет ли лучше вместо ежеминутного запуска оболочки запускать скрипт единожды и исполнять значимую часть либо в цикле, отслеживая события таймера, либо просто тупо ожидая минуту.

rudimko
28-01-2014, 00:38
Iska, в скрипте процесс обнаружения внезапно выжравших оперативную память рабочих процессов (rphost.exe) с кластеров 1С8 на серверах приложений, снятие с них информации через компаненту COM-объекта, при преодолении заданного размера оперативной памяти форсированная остановка рабочего процесса. Далее рассылка уведомлений группе рассылки из AD по Email и формирование файлов (для этого и нужно было условие, описанное выше) для рассылки SMS сообщений. Вкратце так вот... Назвал его rphost killer :-) Как полностью осуществлю задуманное - выложу. Осталось дописать мелочи, такие как определение списка серверов в зависимости от места запуска и тд...
Отдельное спасибо Kazun за непосильную помощь в процессе написания сценария.




© OSzone.net 2001-2012