Наверх

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

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

Это выражение я часто применяю в своей работе — постоянно из-за недостатка средств приходится придумывать какие-то приспособления, как-то выкручиваться, собирая из мусора нужные какие-то девайсы. У нас сейчас стоит жара и духота, градусники глумясь и издеваясь показывают 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’он. Как только я выясню все нюансы и добьюсь стабильной работы — сразу отпишусь.

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

На картриджах NES(Dendy) тоже стояли защиты, которые делали сложность игры невменяемой, если игра обнаруживала, что её взломали и запустили на не оригинальной NES. А так как на пост советском пространстве оригинальных NES вообще не было, то такие игры, как «Teenage Mutant Ninja Turtles 2» мы проходили, даже не зная, что разработчики считали их не проходимыми.

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

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