Наверх

Голь на выдумки хитра

Автор kbaott, 15.06.2012 | Просмотров: 3 765 |

Это выражение я часто применяю в своей работе — постоянно из-за недостатка средств приходится придумывать какие-то приспособления, как-то выкручиваться, собирая из мусора нужные какие-то девайсы. У нас сейчас стоит жара и духота, градусники глумясь и издеваясь показывают 35-37° тепла. Проблема перегрева стала актуальна и для людей и для техники. Кулеры на процессорах и видеокартах воют во всю прыть, пытась создать более комфортные условия для работы и вообще существования этих девайсов. А как же быть устройствам лишенным штатного охлаждения?

Как в предыдущем посте я писал — у меня в кабинете нет кондиционера. А кабинет этот вмещает в себя аж целых 16 компьютеров. В такой густой жаре мы изнываем и спасаемся кто как может. А еще и интернет иногда пропадает.Почитав логи, покопавшись в конфигах сервера — ничего не понял, все работает, но ничего е работает. Потрогал рукой маршрутизатор DSL-2500U, а он раскалился чуть ли не до красна. Что и вызвало перебои. Выключив его, чтоб остыл, стал думать как его охлаждать. Решение пришло практически сразу и охлаждение было сооружено буквально за 5 минут: старый корпусной 80 мм вентилятор, разъем питания Molex, два самореза. два провода — все это собралось в кучу и было прикручено прямо сверху роутера над вентиляционными отверстиями — результат отличное охлаждение и никаких проблем! Выглядит, конечно, не очень презентабельно, но нам нужен результат, а не показуха.

После этого я решил облегчить свое существование. Покупать вентилятор в магазине как-то «жаба  душит», да и ставить его у меня столе особо некуда, а покупать большой, на ноге — вообще верх роскоши. Поэтому я полез в свои ящики с разным компьютерным хламом. Там я надыбал еще один корпусной вентилятор 120 мм / 1500 rpm, который был лишен проводов питания. Также там был найден бок питания 3-12 В — 1А с шестипозиционным переключателем напряжений, блок питания изначально был дефектным — выдавал на выходе непонятные напряжения, например от него не работало не одно активное устройство, а вот вентилятор от него вертеться должен был, к тому же блок питания этот также был с начисто оборванными проводами и отломанными рожками вилки. Ко всему этому я добыл более-менее приличную электрическую вилку и две железных корпусных заглушки. Собрав все это, я получил забавный индивидуальный шестискоростной вентилятор, у которого также имеется функция охлаждения кофе :) — все видно ниже на фотках. Кстати, вентилятор можно запитать напрямую от блока питания компьютера, взяв 12В (желтый и черный провода), но у меня просто нет под рукой свободного провода питания от БП.

Переходи к нам на темную сторону — у нас Дарт Вейдер, вентилятор и ПЕЧЕНЬКИ!

Далее я задумался об отпуске и решил прикрутить к серверу пару скриптов для автоматизации процесса. Честно говоря, я редко прибегаю к использованию скриптов — просто не было необходимости. А тут появилась — так как интернет приходит на роутер D-Link 2500U, который получает динамический IP, его приходилось время от времени передергивать, чтобы он переподключился и получил новый IP, так как время аренды IP у  Укртелекома ровно сутки с момента поднятия сессии. Раньше мне было не трудно жмакать кнопку, а вот в мое отсутствие кнопку жмакать будет некому, поэтому я нашел прикрутил скрипт, который пингует определенный хост и если нет ответа инициировал перезагрузку роутера. А также еще один vbs-скрипт, который просто перезагружает сервер. Оба этих скрипта я засунул в Планировщик заданий (Windows 2008 Server), назначит триггеры на срабатывание по времени и теперь могу спокойно идти в отпуск.

Первый скрипт я нашел на просторах интернета и немного подредактировал:

On Error Resume Next

strComputer = "."
strTarget = "yandex.ru" 'IP адрес или доменное имя
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colPings = objWMIService.ExecQuery _
    ("Select * From Win32_PingStatus where Address = '" & strTarget & "'")
If Err = 0 Then
    Err.Clear
        For Each objPing in colPings 'избавиться от форича
If Err = 0 Then
    Err.Clear
If objPing.StatusCode = 0 Then
    ' если статус = 0, пустая строка - другое
    Else
        Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "telnet.exe 192.168.1.1"
WScript.Sleep 1000
oShell.SendKeys "admin" & chr(13) ' имя пользователя 
WScript.Sleep 1000
oShell.SendKeys "admin" & chr(13) ' пароль 
WScript.Sleep 1000
oShell.SendKeys "reboot" & chr(13) 'команда перезагрузки роутера
WScript.Sleep 3000
oShell.SendKeys "logout" & chr(13) 'выход из telnet-сеанса
WScript.Sleep 5000
oShell.SendKeys "exit" & chr(13) 'выход из командной строки
End If
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If
Next
Else
Err.Clear
WScript.Echo "Unable to call Win32_PingStatus on " & strComputer & "."
End If

Если вдруг кому пригодятся, вот эти файлы:

  • Пингует указанный сервер, при отсутствии ответа ребутит роутер: ping-adsl-reconnect
  • Просто перезагружает сервер: reboot

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

Сейчас для меня остался открытым только один вопрос: удаленное управление сервером из дома. Но я уже на пути к решению этого вопроса. Есть четыре варианта: купить статический IP у Укртелекома, что просто нежелательно; использовать сервис DynDNS, но он с недавнего времени стал платным, а нам это не подходит; использовать OpenVPN LogMeIn Hamachi, тут также есть финансовый вопрос, а также есть некоторые неудобства в использовании; остается только (один авторитетный) бесплатный сервис NoIP, но что-то он не очень хочет дружить с RAdmin’он. Как только я выясню все нюансы и добьюсь стабильной работы — сразу отпишусь.

Вместо эпилога:

— Давай просто посидим, чаю попьем
— Хочу сказать, что маньяк вы так себе.

— «Я постиг шизофрению»

Метки: , , , , ,
Писано 15.06.2012

Понравилась статья? Тогда получайте обновления на e-mail: