Category: it

Category was added automatically. Read all entries about "it".

43

Автоматизация обхода свичей по телнету

Нарисовал немного такого вот полезного кода, попутно несколько изучив tcl вообще и expect в частности, и истощив запас лучей диареи, высланных в сторону разработчиков терминала dlink’ов. Сначала все шло хорошо, и код набросался минут за 15, включая гугл. А вот потом я наступил на змеиное логово, оттуда выпрыгнули пауки и замотали меня в паутину, сволочи. Терминал не хотел переваривать \r. Тоесть  в ответ на «login» отсылаю я ему »admin\r». А там оно это не хавает и чегототам еще ждет. Уж как я не извращался, грешил на то, что не \r отправлять надо, пытался управляющие символы подменить, колдовал над stty и вообще грешным делом думал уже в православную веру перла удариться, проявив малодушие и отбросив в сторону упертость.

А потом взял wireshark и сравнил траффик. Тот который при ручном коннекте и который скрипт генерирует. Оказывается червь, переваривающий внутри длинков терминальные комманды настолько ленив (ну или с ЖКТ у него чегото не так), что переваривать может только команды, отосланные посимвольно. Отослали символ, подождали, отослали-подождали… Причем ждать надо не сколькототам секунд, а желательно пока червь не подтвердит принятие очередного символа. Вообщем, битва была долгой, но неравной. Под катом то, что вышло.

Collapse )

Оригинал записи - в личном блоге. Комментировать можно тут, но желательно там.

43

Конвертирование фотографий для фоторамки

Довольно давно мы с женой купили себе фоторамку. Обычную такую электронную фоторамку. Втыкаешь в туда флешку с фотками и оно эти фотки показывает. Ну так вот, только что у меня дошли руки нарисовать скрипт для конвертирования фоток под эту фоторамку.
Дело в том, что флешка у меня в ней на 2Г всего, а фоток набралось (с мусором) уже под 40Г. А разрешение у фоторамки небольшое: 480х234. Ну так вот, логично было бы фотки ресайзить под это разрешение. Что я и сделал.
Collapse )
43

el2sl оказывается пользуется спросом :)

Сегодня случайно зашел на страничку своего старого проекта - отсылки виндовых логов в линух.
Окахывается оно пользуется довольно приличным спросом...



А вообще я конечно свинью подложил разработчикам подобного софта :) Практически все остальные такие инструменты - за деньги :):):)
43

PHPFlowGUI

Как говорится, каждый админ должен нарисовать свой велосипед для подсчета траффика. Ну так вот, я свой сейчас рисую на основе php+flow-tools. Уже считает по каждому компутеру в сети. Устанавливаться будет легко - достаточно прописать несколько опций в конфиге и сделать пару симлинков к данным flow-tools. Единственное требование пока что - файлы данных flow-tools должны лежать в одной дирктории (flow-capture -N 0).
Желающие потестировать стучитесь в jabber: sheridan@nclug.ru
43

Автомонтирование ftp

Давеча спросил меня один человек - "какой лучше всего использовать в линуксе ftp клиент?"... Я ответил честно - ftpfs.
По моему на самом деле самый приемлемый вариант. А уж посмотреть содержимое "локального" каталога можно чем угодно. Есть желание настроить? Ну тогда айда :)
Для начала устанавливаем net-fs/curlftpfs, Потом пробегаемся глазами по статье Автомонтирование устройств с помощью autofs, дабы быть в курсе того, о чем я буду говорить.
Итак, создаем директорию /mnt/z_autofs_ftp, в ней создаем директорию ресурса, который будем монтировать (для примера возьмем ftp://ftp.someserver.org, тоесть в данном случае я бы назвал директорию someserver). создаем также директорию /mnt/ftp, и делаем в эту директорию симлинк на /mnt/z_autofs_ftp/someserver, тоесть у нас получается симлинк /mnt/ftp/someserver, указывающий на /mnt/z_autofs_ftp/someserver
Теперь идем в /etc/autofs, открываем на редактирование auto.master и дописываем туда
/mnt/z_autofs_ftp /etc/autofs/auto.ftp --timeout=60

Далее создаем файлик /etc/autofs/auto.ftp и пишем туда
someserver        -fstype=fuse,allow_other,disable_eprt   :curlftpfs#login\:password@ftp.someserver.org

Все. Перезапускаем сервис (/etc/init.d/autofs restart) , и при заходе в /mnt/ftp/someserver мы окажемся на ftp://ftp.someserver.org
Спасибо за внимание :)
43

Локальное общение. Jabber на предприятии.

Дошли руки до внутреннего мессенжера предприятия. Поднял. Выбор ясен - jabber
Итак, сервером у нас OpenFire, в качестве клиента была выбрана софтина того-же производителя: Spark
Выбирал клиента я долго, потому как хотелось развернуть его на клиентских компутерах автоматически. А для этого нужен msi пакет.
Честно говоря я нашел всего 2 клиента, постявляемые в msi - это собственно Spark и Akeni jabber. Последний не имеет переводов и выклядит мягко говоря не очень. Зато Spark довольно красив, удобен, но есть сложности с использованием, потому как он всякое пишет в свою родную папку в программ файлах, а туда обычным юзерам писать низя :). Вобщем не запускался он, хотя разворачивался хорошо. Пришлось при логине давать права на эту папку юзерам, но об этом пожже...
Установка сервера особых проблем у меня не вызвала. Мне нужно было всего лишь запустить emerge openfire на своем гентушном серваке, а потом стартовать сервис /etc/init.d/openfire start, зайти в веб-интерфейс http://server:9090/ и немного настроить.
Так как мессенжер устанавливается на предприятии, то не имеет смысла разрешать пользователям создавать себе аккаунты и логиниться анонимно, что было запрещено: server->registration & login запретить Inband Account Registration и Anonymous Login (все относящееся к серверу делается через веб-интерфейс). Добавлять же пользователей и группы нужно в Users/Groups в соответствующих пунктах меню. Для того, чтобы созданные пользователи автоматически рассылались на клиентов (чтобы не надо было потом друг друга вторизировать) нужно делать следующее: Пользователя добавляем в группу, а группе включаем Contact List (Roster) Sharing - это делается в свойствах группы - Enable contact list group sharing + Share group with additional users + All users. Тут-же ниже можно добавлять пользователя в группу. Хорошей стратегией будет создание группы по умолчанию, в которую будет включаться пользователь при регистрации. Это делается в Users/Groups->Registration properties->Default Group. В принципе все. Создаем группы, создаем пользователей и айда разворачивать клиета.
Идем в контроллере домена в групповые политики, открываем нужную политику на редактирование, идем Конфигурация компьютера->Конфигурация программ->Установка программ->Правый клик->Создать->Пакет... и выбираем в открывшемся диалоге наш msi пакет спарка. Внимание! Путь До msi должен быть не локальный а сетевой, и пакет должен лежать на шаре с открытым для юзера доступом (чтототипа \\servak\share\net\spark.msi)
В открывшемся следом диалоге выбираем "Назначеный" и жмем ок. Готово. Теперь у юзеров, попадающих под политику при загрузке компа перед логином наш пакет установится. Но это еще не все. Надо еще разрешить спарку писать в свою папку. Для этого в политиках в Конфигурация компьютера->Конфигурация Windows->Сценарии->Автозагрузка нужно добавить скрипт, также лежащий где-ть на шаре (по умолчанию скрипты живут в \\server\NETLOGON\). Скрипт должен быть следующего содержания:
cacls "C:\Program Files\Spark" /G "Пользователи домена@ваш.домен":F /T /E

Все. Осталось только раздать пользователям их логины-пароли или пройтись и выставить настройки как надо. В Спарке кстати есть функция автозагрузки и автологина, так что пройтись надо будет ровно 1 раз :)
Желаю приятного общения :)
43

Новокодеры

Общаясь на форумах rsdn я понял тут одну вещь...
Программисты вырождаются. С дикой скоростью превращаются из мастеров своего дело в кодеров. Современный программист уже не тот, который был даже 5 лет назад. Современный программист ленив. Ему лень настроить систему, ему лень читать документацию, не относящуюся к его языку программирования. Ему просто лень. Современный программист - просто рабочий. У него есть станок, у него есть рабдень, и у него нет интереса к работе. Нет, к программированию у него интерес еще может и быть, а вот с интересом к IT вообще уже туго. Я к сожалению не попал во времена ассемблера, да и комп у меня появился довольно поздно, но я не могу понять - как можно программировать, не имея понятия об администрировании, о механизмах ОС? Как можно давать такому кодеру проект, когда этот кодер боится консоли как огня и все время ищет кнопку "Сделать мне песдато"?
Хреново вобщем. Очень хреново. Я считаю, что волна пошла после появления новобэйсика, тобиш дотнета. Ну какже, они же не на бэйсике программируют! На сишарпе! А то, что что шарп, что бэйсик - суть одно и тоже - скрывается. Сборщики мусора, понимаеш, полуинтерпритатор-полукомпилятор, иногда производительнее явы, а еще иногдее производительнее с++, понимаеш... Тьфу! Повылазили, в общем, из подвалов средненькие кодеры, и тупо стучат по клавишам. Раньше то в подвалах сидели, стеснялись говорить что на бэйсике програмируют, на языке, разработанном для обучения программированию. Конечно - стыдно признать, что дальше учебного языка учеба не идет. Вот и сидели. А теперь высоко держат подбородок - дотнетчики-ж, не хухры-мухры. Да в принципе и есть чему гордиться - с горем пополам за (сколько там лет прошло с появления дотнета?) выучили схожий язык. Рады. И к сожалению таких кодеров теперь большинство.
Вот так вот. А мы потом деньги тратим не только на новый софт, но и на новое железо, потому что на старом софт почемуто начинает тормозить. Дальше хуже будет. Попомните мои слова. Я надеюсь только на одно - что со временем количество кода перерастет в качество, и начнет цениться не рюшечки, а производительность. Но чую пятой точкой - нескоро это будет. Из аозможностей железа просто еще не все выжали...
43

Градиент из скрипта

Да! Я сделал это! :)
В принципе ничего сложного, но денек потратил - встречайте: скрипт для создания цветовых градиентов
gate lcsc # get_gradient -h

-h, --help              This help
-s, --start-color       Start color (for example -s=000000)
-e, --end-color         End color (for example -e=FFFFFF)
-S, --steps             Gradient steps (for example -S=12)
-t, --type              Gradient type: Linear (linear), Radial clockwise (rcw), Radial counter-clockwise (rccw), default: linear
-d, --debug             Debug output (html)
-------------------------------------------
Thank to authors of http://en.wikipedia.org/wiki/HSV_color_space

Скрипту надо скормить стартовый цвет, конечный цвет, указать количество шагов и тип градиента (скриншоты под катом)
Типов градиентов пока 3:
linear: линейный - путь по отрезку внутри цветового куба
rcw: круговой - обход цветового круга по часовой срелке
rccw: тоже самое что rcw, только против часовой стрелки
Количество шагов не учитывает начальный и конечный цвета, тоесть если попросить 5 шагов, то выдаст 7 цветов.
Сыпет в консоль цвета в hex RRGGBB
gate lcsc # get_gradient -s=FF0000 -e=00FF00 -S=5 -t=rccw
ff0000
ff00aa
aa00ff
0000ff
00a9ff
00ffa9
00ff00

В дебаг режиме сыпет не цвета, а html страничку, скриншоты которой и находятся под катом

Collapse )

Лично я сей скриптик применяю, чтобы в munin'е рисовать красивые графики (об этом отпишусь пожже :) И поделюсь заодно )
43

Автомонтирование устройств с помощью autofs

Очень многие задают мне вопрос "Как правильно настроить автомонтирвание устройств?"... Попробую ответить.
Сразу скажу,  я не понимаю моды на hal, и честно говоря не совсем понимаю его необходимость, а поэтому работаю со стандартным automount/autofs. К томуже реально автоматическое определение устройств а не менее же автоматическим их монтированием куда попало обычно реально пригождается гдето в среднем раз в год (для меня конечно, не спорю - есть компы куда всякие левые флешки втыкаются с частотой системного таймера), а поэтому лучше один раз прописать что куда надо монтировать и как монтировать, чем напрягать комп каждый раз гадать куда же примонтировать флешку... Впрочем ладно.
Collapse )