Лень — двигатель прогресса!

Две-три недели назад на работе мне выделили дополнительный компьютер. К слову сказать, компьютер не ахти какой, по нынешним меркам: P3 700 MGz, 2×128 MB PC133, Radeon 9000LE. В целом компьютер бегает нормально, но в большинстве приложений тормоза конкретные (Фотошоп, Офис и т.д.). Так вот, выделили компьютер и сказали: «будешь каждый день обновлять Консультант Плюс, но так, чтобы не мешать работе пользователей». Весь прикол в том, что при обновлении баз надо предупреждать пользователей и просить их закрыть программу (от греха подальше), да и тормоза во время этого обновления такие, что ничего делать невозможно в течение 2-3 часов.

Немного подумал и предложил начальству производить обновление по ночам — и пользователям никто не мешает, да и канал не так забит. Добро получил, но тут встала другая проблема. Как ночью запускать обновления, если комната закрыта, опечатана и поставлена на сигнализацию? «Отца русской демократии» явно спасёт какой-нибудь планировщик — в народе шедуллер. В хелпе к программе обновления прочитал возможность запуска обновления с параметрами. Попробовал поковыряться со встроенным планировщиком в WindowsXP. :(p) Редкостная гадость, мне хватило пяти минут понять, что для моей задумки этого вообще не подойдёт. Либо в этом планировщике может разобраться только его создатель. Остановился на программе планировщике nncron. Мало того, что все необходимые действия можно запрограммировать с помощью понятного интерфейса, так ещё и поддерживается синтаксис никсового кронтаба. Об этой программе знал давно, но вот вплотную заниматься ею не приходилось.

За пару минут создал правило, которое запускало обновление ночью. Дальше встала такая задача. Если обновление завершилось или не состоялось, зачем тогда компьютеру работать целую ночь? Неплохо бы его автоматически выключить. Как всегда решение пришло к концу рабочего дня. Всё в том же nncron'е можно выключать компьютер, если какое-либо приложение не висит в процессах, либо завершило свою работу. Первый вариант сразу отпал, т.к. тогда компьютер выключался сам через пять минут. В итоге написал второе правило, в котором отслеживалось завершение работы программы обновления. А так как обновление запускалось с ключами, то и никаких лишних окошек не появлялось, ни на какие кнопки подтверждения нажимать не надо, соответственно после завершения обновлений можно выключать компьютер.

Правда, в течение дня его приходилось включать, но это уже мелочи (так мне казалось неделю назад). Вот таким макаром у меня целую неделю обновлялись базы. Одно только меня смущало, что надо его самому каждый день включать, да и ещё набирать пароль для входа в сеть и подключения к новеллевскому серверу. На пару дней меня ещё хватило, но постоянно закрадывалась мысль, что забуду включить, могу уйти в отпуск, и тогда придётся всё объяснять на пальцах студенту, а он точно забудет. Короче говоря, надо сделать так, решил я, чтобы компьютер сам включался в назначенное время. Но тут возникла проблема с паролем.

Если бы не было новелля, то нет проблем, средствами виндоуса можно назначить автоматический вход определённого пользователя. Но с новеллем полный облом выходил. И тут я вспомнил про спящий режим (благо, что стоит ХыПы 😉 ). Замечательный режим! После пробуждения никаких паролей вводить не надо, да и все работающие на момент выключения приложения остаются на месте. Теперь осталось решить: как же всё таки включить компьютер автоматически? Через пять минут мучений Гугла получил решение: копать в сторону биоса.

Перегрузил компьютер, зашёл в биос. О, да! Есть такая опция — подача питания в случае, если компьютер выключен (вольный перевод) и время можно назначить. Попробовал. Работает как Т34. Подключил я это дело к бесперебойнику (так на всякий пожарный) и теперь у меня компьютер работает полностью в автоматическом режиме: сам включается, сам обновляет, сам выключается. Красота!

P.S. Надо бы добавить ещё оповещение по электронной почте. Типа «я включился», «обновил базу, выключаюсь». А то лень нажимать на кнопочку переключателя. 🙂
P.P.S. Перечитал, что написал. Что знакомое в этом автоматическом режиме промелькнуло. Скайнет?

Лень — двигатель прогресса!: 10 комментариев

  1. 🙂 Хорошо...

    До cron'а я добрался немного раньше — приходилось работать с ним на серваке, а тут как-то заметил версию под винду. На работе ничего особо не автоматизировал, так как нет монотонных занятий, а вот дома много накрутил.

    PS.

    Два вопроса:

    1) Почему не использовать сетевую версию консультанта

    2) Разве можно напрямую переписывать базы по сети

  2. Почему не использовать сетевую версию консультанта

    Так сетевая версия и стоит. Я базы на сетевом диске обновляю.

    Разве можно напрямую переписывать базы по сети

    Просто программа обновления запускается с сетевого диска, а не с локального. В ini файле Консультанта уже все пути к базам прописаны.
  3. я так и не понял, а зачем его таки выключать? экономия электричества?

  4. Крон (в частности виндовая версия) — один из мастхэвов 🙂

    А ввод учетных данных в различные клиенты новеля, МСя организовал с помощью скриптов AutoIt. В частности, процесс выгрузки данных из 1С (дбф) и загрузку в SQL как раз таким образом ночью на автопилоте идет.

  5. Не понял, чем не устроил виндосячий шедулер. Вполне все просто, запускать может от любой учетной записи, контроль выполнения, периодичность, пр. Сложного там нет ничего.

    Единственный недостаток у него, так это нежелание запускать иногда по непонятным причинам. Замечено было на MS Windows 2000 Server terminal edition.

  6. Чем не устроил? А вот он может выключать компьютер по завершении определённого процесса (по имени)?

  7. 2wom

    Вот скажите мне, зачем комп должен круглосуточно работать, если он обновляет базы всего лишь 2-3 часа в день? Всё остальное время просто простаивает.

    И экономия электричества тоже да. 🙂

  8. Добрый день автору очерков!

    К сожалению ни подписи его,. ни обратного адреса , на странице не обнаружил – остаётся формат обратной связи, чем я надеюсь с успехом для контакта воспользуюсь.

    В очерке от 07. 06. 2006 (где речь шла о планировщике nnCron) меня заинтересовала фраза, которая дала мне ответ , гдЕ искать решение моей проблемы. Итак цитирую выдержку : «…. теперь осталось решить: как же всё таки включить компьютер автоматически? (для меня это и был и остаётся ключевой вопрос) Через пять минут мучений Гугла получил решение: копать в сторону биоса.

    Перегрузил компьютер, зашёл в биос. О, да! Есть такая опция — подача питания в случае, если компьютер выключен (вольный перевод) и время можно назначить. Попробовал. Работает как Т34. Подключил я это дело к бесперебойнику (так на всякий пожарный) и теперь у меня компьютер работает полностью в автоматическом режиме: сам включается, сам обновляет, сам выключается. Красота!»

    Поскольку я пользователь , но не программист, хотел бы послушать , как знающие люди решают эту проблему. Желательно, конечно по шагам. В и-нете , часто в различных изложениях спящий режим как-то тихо подменяется ждущим режимом , когда говорят о запуске системы или включении компьютера. Для меня также эта проблема стала актуальной в связи с использованием в качестве планировщика упомянутой в очерке nnCron-а. Кстати, в Хэлпе этой программы также скользко обходится решение проблемы включения компа , вошедшего в спящий режим . Поэтому я с благодарностью приму ваши советы по этому поводу. Параметры машины – ноут, WIN XP PRO SP2, PROC-Celeron700, RAM 312Mb.

    С уважением, Савченко Александр

  9. На счёт ноутбука не уверен, но в стационарных машинах именно в биосе есть такая опция (подача питания в определённое время). Заметьте, что время в биосе задаётся жёстко. Поэтому если вам надо, чтобы в течение недели он включался в разное время, то тут вряд ли вам поможет биос.

    К сожалению вы не описали для каких именно целей вам надо автоматически включать ноутбук. Если в качестве будильника :), то тут вам действительно поможет не спящий режим, а ждущий. Правда в случае с последним, насколько мне известно, питание будет подаваться постоянно (ну не пользуюсь я этим режимом). Дальше надо экспериментировать. Вот эту ссылку читали? Если ваш ноутбук поддерживает режимы Suspend и Hibernate, то всё должно получиться.

Обсуждение закрыто.