Две-три недели назад на работе мне выделили дополнительный компьютер. К слову сказать, компьютер не ахти какой, по нынешним меркам: P3 700 MGz, 2×128 MB PC133, Radeon 9000LE. В целом компьютер бегает нормально, но в большинстве приложений тормоза конкретные (Фотошоп, Офис и т.д.). Так вот, выделили компьютер и сказали: «будешь каждый день обновлять Консультант Плюс, но так, чтобы не мешать работе пользователей». Весь прикол в том, что при обновлении баз надо предупреждать пользователей и просить их закрыть программу (от греха подальше), да и тормоза во время этого обновления такие, что ничего делать невозможно в течение 2-3 часов.
Немного подумал и предложил начальству производить обновление по ночам — и пользователям никто не мешает, да и канал не так забит. Добро получил, но тут встала другая проблема. Как ночью запускать обновления, если комната закрыта, опечатана и поставлена на сигнализацию? «Отца русской демократии» явно спасёт какой-нибудь планировщик — в народе шедуллер. В хелпе к программе обновления прочитал возможность запуска обновления с параметрами. Попробовал поковыряться со встроенным планировщиком в WindowsXP. :(p) Редкостная гадость, мне хватило пяти минут понять, что для моей задумки этого вообще не подойдёт. Либо в этом планировщике может разобраться только его создатель. Остановился на программе планировщике nncron. Мало того, что все необходимые действия можно запрограммировать с помощью понятного интерфейса, так ещё и поддерживается синтаксис никсового кронтаба. Об этой программе знал давно, но вот вплотную заниматься ею не приходилось.
За пару минут создал правило, которое запускало обновление ночью. Дальше встала такая задача. Если обновление завершилось или не состоялось, зачем тогда компьютеру работать целую ночь? Неплохо бы его автоматически выключить. Как всегда решение пришло к концу рабочего дня. Всё в том же nncron'е можно выключать компьютер, если какое-либо приложение не висит в процессах, либо завершило свою работу. Первый вариант сразу отпал, т.к. тогда компьютер выключался сам через пять минут. В итоге написал второе правило, в котором отслеживалось завершение работы программы обновления. А так как обновление запускалось с ключами, то и никаких лишних окошек не появлялось, ни на какие кнопки подтверждения нажимать не надо, соответственно после завершения обновлений можно выключать компьютер.
Правда, в течение дня его приходилось включать, но это уже мелочи (так мне казалось неделю назад). Вот таким макаром у меня целую неделю обновлялись базы. Одно только меня смущало, что надо его самому каждый день включать, да и ещё набирать пароль для входа в сеть и подключения к новеллевскому серверу. На пару дней меня ещё хватило, но постоянно закрадывалась мысль, что забуду включить, могу уйти в отпуск, и тогда придётся всё объяснять на пальцах студенту, а он точно забудет. Короче говоря, надо сделать так, решил я, чтобы компьютер сам включался в назначенное время. Но тут возникла проблема с паролем.
Если бы не было новелля, то нет проблем, средствами виндоуса можно назначить автоматический вход определённого пользователя. Но с новеллем полный облом выходил. И тут я вспомнил про спящий режим (благо, что стоит ХыПы 😉 ). Замечательный режим! После пробуждения никаких паролей вводить не надо, да и все работающие на момент выключения приложения остаются на месте. Теперь осталось решить: как же всё таки включить компьютер автоматически? Через пять минут мучений Гугла получил решение: копать в сторону биоса.
Перегрузил компьютер, зашёл в биос. О, да! Есть такая опция — подача питания в случае, если компьютер выключен (вольный перевод) и время можно назначить. Попробовал. Работает как Т34. Подключил я это дело к бесперебойнику (так на всякий пожарный) и теперь у меня компьютер работает полностью в автоматическом режиме: сам включается, сам обновляет, сам выключается. Красота!
P.S. Надо бы добавить ещё оповещение по электронной почте. Типа «я включился», «обновил базу, выключаюсь». А то лень нажимать на кнопочку переключателя. 🙂
P.P.S. Перечитал, что написал. Что знакомое в этом автоматическом режиме промелькнуло. Скайнет?