bash.im ithappens.me zadolba.li

Факапы

13451

Показать всё, что скрыто

Расскажу про свой факап. Сейчас за него не сколько стыдно, сколько смешно.

Работаю админом в одном маленьком офисе с большими амбициями. Как полагается для такой конторы, тут у нас холдинг и куча ООО-ЗАО-ИП (10 организаций, если быть точным) и практически для каждой есть свой сайт, а для некоторых даже не один. Когда я пришёл к ним, большая часть сайтов была уже сделана и благополучно забыта, но парочку всё-таки пришлось рисовать мне. За «спасибо» и символическую премию. Я не против, это для меня было что-то новое и интересное. Собрали один такой сайт-информационку на джумле из пиратских модулей (с порно-ссылками, которые потом долго выслеживали и вычищали), нарисовали всё красиво (то есть руководитель сказал «ок»), а всё, что было некрасиво — скрыли.

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

Прошло полгода. Месяц назад от хостера мне посыпались письма с угрозами: «Место на хостинге кончается, купите больше хостинга или мы вас закроем». Добавил сотню метров. Через пару недель опять то же самое. Добавил ещё сотню. На третьей сотне мне уже стало любопытно — что же так раздувает наш хостинг? Не новый ли сайт на OC Store с интеграцией в 1С и ежедневной выгрузкой номенклатуры? Полез через PhpMyAdmin смотреть размеры таблиц. И тут-то я и увидел то, что на весь остаток дня заставило меня улыбаться. Так как спираченный шаблон на джумлу победить до конца не удалось, недостающий функционал заменили на К2 и локализовали вручную (сам переводил, да). И таблица %prefix%_k2_comments была раздута до 1,5 Гб с содержимым в > 2 млн. строк. Судя по содержимому, боты, однажды зацепившись за пару статей, продолжали спамить туда свои китайские ссылки на протяжении всех этих долгих месяцев.

DELETE FROM %prefix%_k2_comments WHERE id > 1

И сразу размер базы уменьшился до 6 Мб. И стыдно, и смешно.

Мораль сей басни такова: если накрыть кучку тряпочкой — это вовсе не значит, что она не будет вонять.

13450

Квантовая неопределённость

Эффект присутствия при ловле багов? Попробуйте отсутствовать. Непонятно? Сейчас объясню.

В стародавние времена была у нас похожая история: вис один из офисных компьютеров. Ни с того ни с сего он наглухо зависал, не реагируя ни на что, кроме кнопки Reset.

Сидели над ним по часу, слушали музыку, читали книги — не виснет. Уйдёшь, оставив на попечение владельца — виснет.

А причина оказалась каким-то образом связана то ли с мышью, то ли со скринсейвером (которого не было, но, видимо, что-то как-то пыталось запуститься). Уже догадались?

Вот что вы делаете, когда тупо сидите у компа и чего-то ждёте? Даже если вы с ним ничего полезного не делаете — кто-то гоняет курсор мыши по экрану, кто-то постукивает по столу пальцами, заставляя мышь елозить туда-сюда на 1−2 пикселя, кто-то щёлкает кнопками.

А сотрудник, чей это был комп, оставаясь один, просто вставал и шёл трепаться с коллегами, пить чай, курить, смотреть в окно. Он-то не айтишник. И через несколько минут комп зависал наглухо.

Вылечили переустановкой системы, так как это было банально быстрее, поэтому настоящая причина зависания так и осталась невыясненной. Да и нужно ли это было?

13431

Гугл в помощь

Прочитав историю про ноль, расключённый на контакт заземления, получил лицевую травму от фейспалма.

Для кого выпускают ГОСТы, СНиПы и прочие стандарты? В основном, разумеется, для профессионалов. Но раз уж ты решил что-то сделать, ну так хотя бы загугли, можно вообще так поступить или лучше не надо.

Помните давнюю историю про таксу, которая за потолком тянула UTP? Задорно, ага. ГОСТ Р 53246? ANSI/TIA/EIA-569A? Не, не слышали. Профи, безусловно.

Золотое правило: если ты всё делаешь по соответствующему стандарту, ты гарантированно получишь работоспособную систему. Потому что стандарты предусматривают хороший такой «запас прочности», он же «защита от дурака», и в них в принципе отсутствуют так называемые узкие места.

А когда лень и недосуг почитать стандарт, получаются различные казусы. И не всегда забавные. Минимальный радиус изгиба оптики? Не в курсе? Тогда считай, что дешевле — ставить муфту на перелом кабеля или перетягивать трассу. Пучок UTP в одном лотке с вводным кабелем толщиной в руку — и чего это у нас тест на категорию 6 не проходит? Незаземлённый лоток — ой, откуда коллизии?

Иной раз складывается впечатление, что ГОСТы — это такая вещь в себе, никому, кроме авторов, не интересная. Добрая половина факапов, описанных на IT happens, как раз и случилась по причине пренебрежения правилами.

Собственно, это всё к чему? Есть такой документ — ПУЭ, Правила устройства электроустановок. Он совершенно не интересен ни админам, ни монтажникам слаботочки, ни, тем более, обычным гражданам, ровно до тех пор, пока не приходится столкнуться с сетью электропитания. Поскольку подавляющее число компьютерной и бытовой техники хочет для работы 220 В, в какой-то момент это столкновение произойдёт.

Так вот, когда это произойдёт, не поленитесь хотя бы Гуглом воспользоваться, если на ПУЭ сил не хватит. Узнаете много интересного про рабочий ноль и защитный ноль, например. Про то, что в распределительных щитах на вводе принято делать повторное заземление — соединять ноль и «землю». И про то, что после распределительного щита делать такое соединение категорически запрещается. Заодно узнаете, почему. Потому что, если вы этого не узнаете теоретически, то запросто можете узнать практически. Со всеми вытекающими.

13429

Земля курильщика

Пару лет назад в доме у родителей случилась беда: любимый полуантикварный компьютер с «Одноклассниками», фотоархивом и прочими полезными вещами перестал включаться. Сначала просто системник 1−2 раза в день решал отправиться поспать, списывали на жару и перегрев процессора при плохой вентиляции. Но наступила осень, и отключений стало только больше.

Тогда решили поменять блок питания, так как знали, что из-за старого блока тоже бывают аналогичные проблемы. С новым блоком комп проработал ещё пару недель и сдох окончательно.

Вздохнув и признав, что всё же я не инженер и не специалист в железе (максимум могу собрать что-то из стандартных компонентов «для своих» и настроить систему), решили вызвать мастера.

Мастер надиагностировал сгоревшую материнку и сгоревший процессор. Заменил на антиквариат из собственных запасов. Но через пару недель история повторилась.

Тут мы вспомнили, что не раз обращали внимание на наводки на корпусе. И наконец-то догадались проверить напряжение на контактах в розетке.

В общем, в конце 90-х мы делали ремонт. Для компьютера решили поставить «европейскую» трёхконтактную розетку, которые тогда ещё были непривычны. Так как в стене шёл обычный советский двужильный провод, решили боковые контакты замкнуть на ноль, ведь на нём же нет напряжения, чем не «земля»? Прошло время, и то ли в щитке, то ли на подстанции наш ноль поменяли с фазой. Теперь удивляюсь, что техника в таких условиях вообще жила несколько месяцев, и даже данные на дисках остались неповреждёнными.

13376

На ошибках мучиться

Логический пробник. Когда проверял каналы у одного устройства, случайно перепутал вилки, и так получилось, что вместо 5 вольт на пробник пошло 220. Бабах, а мне наука: «Проверяй перед подключением». И неоднократно било током, и обжигался паяльником…

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

Телефон-китаец на трёхбуквенном процессоре. По ошибке грохнул разметку памяти. Потом затёр предзагрузчик. Через полчаса копания на известном портале, посвящённом носимой электронике, всё восстановил.

Электронная книжка со скалой в названии. Экспериментирую на читалке со стеклобоем (потому что не жалко). И левые прошивки, и что только не делал. За 15 минут всё восстанавливается. Уже самому интересно, когда она наконец сдохнет без возможности восстановления.

Зато после этих манипуляций начал понемногу понимать, как устроены и как работают прошивки.

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

13370

Говорит и показывает локалхост

Ежедневные бэкапы не всегда спасают от ошибок разработчиков.

На прошлой работе один из коллег при обновления конфига проекта снёс переключение с внешней БД на локальную при входе на локальную копию сайта проекта с локального IP (127.0.0.1). А так как локальные БД на всех машинах обновили за сутки до этого с продакшна, тестер разницы не заметил. Так и летели в течение всего дня на продакшн названия новостей типа «О%#&нная новость» и «За$%#нный сайт». А неплохой был тестировщик…

13365

Бэкапом по факапу

В корпоративном чате:

Я очень наделся, что в этом проекте не скажу этих слов, но обстоятельства заставляют.

Господа, а бэкапы кто-то делал?

13330

Коричневая неожиданность

Ноут включился в рюкзаке из спящего режима, сам решил поустанавливать обновления и ребутнуться, стёр все открытые файлы Матлаба, до жидкости вытопил своими четырьмя ядрами запечатанную 99-процентную шоколадку, та залила рюкзак, ноут кулером через вентиляционное отверстие всосал жидкий шоколад внутрь себя и довольный сдох.

13328

Хочешь вслух скандалов длинных?

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

Первоначальная правка кода успешно падала с ошибкой: сайт вытаскивал версию мальчика. Потом успели поправить так, чтобы не падало, но версия мальчика успела уйти в логи, и сайт к ней начал обращаться в случае любого ЧП.

И всё бы ничего, его версия была даже стабильна, но тестировщики залили в тестовую базу совершеннейшую чушь. Представьте удивление человека, открывающего новый раздел «Избранное» — и…

Хочешь сладких п#$дюлей?

А теперь представьте, что этот человек — директор компании.

13321

Выдернуть шнур, выдавить стекло

Вылили кофе на клавиатуру? Кот пометил макбук? Сгорел сервер, который завернули в одеяло, чтобы не шумел? Что вы знаете о неприятностях?

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

Что забавно, акт подписали, не моргнув.

13264

Танцы на тонком льду

Утро после тим-ивента. В офис пришли не все, в кубиках тихо…

Бот, раздающий задания из очереди, благополучно сдох после вчерашнего апдейта кода — да, мы маньяки, один энтузиаст после пива с устрицами поправил генерацию порядковых номеров инженеров, а второй проинициализировал бота в не подходящий этой скотине (боту же, боту!) момент.

Вот и моё чудо номер один — «outage», «Wi-Fi», «DHCP». Читаю внимательнее. Ой, port-channel.

Итак, Некто увидел, что DHCP snooping настроен только на port-channel, а на физических линках этой команды нет. Заметим, все работает, клиенты подключены. Сделал Некто из этого интересный вывод: надо включить тот самый снупинг и на физических линках (зачем, зачем?! Логический интерфейс всё равно уже делает это прямо на этом же канале).

Включил. На одном, видимо, дальше не успел, потому что интерфейс из канала выпал, port-channel пошёл пересобираться — и увидел, что конфигурация физических линков, его составляющих, разная, а значит, собрать их не получится. И поднялось у нас два параллельных канала: один — port-channel, один — физический линк. И тут — ай-ай-ай — оказывается, Некто на устройство попадал по SSH по тому самому port-channel’у! А у нас два параллельных линка, трафик то туда, то сюда, циклы, дропы.

Понял Некто, что это сбоит high availability (ну да, что ж ещё-то) и пустил active unit по питанию. Тут всё немножко подёргалось, подцепило старый конфиг — и восстановилось, конечно.

Что же наш Некто сделал? Правильно, бегом на SSH обратно — надо же вбить DHCP snooping trust на физических интерфейсах!

В этот раз, скажу честно, успел.

И открыл Некто кейс у вендора со строгим вопросом: объяснить недопустимое поведение строптивой железки. Что же такое-то, в самом деле: не читая документации, подрубил под собой сук, да не до конца, а так, на полфюрера — а оно тут само вдруг!

Можно было бы ещё писать, да тут чудо номер два подвалило… Эх, где ж мой кофе утренний?

13248

Утехи для самых любопытных

Ох и юмористы тут сидят! Для них баннер, который требует 50 рублей, потому что пользователь якобы просматривал сайт ГорячиеЦыпы.com, говорит о том, что пользователь точно просматривал порно. Расскажу-ка я историю, которая приключилась со мной в пору становления админом.

Нашёл я себе новую работу в филиале торговой компании. Предстояло мне администрировать сеть с Active Directory. До этого я работал либо с малыми сетями, где AD был не к месту, либо в чужих сетях, где админили AD бородатые дяди, либо где AD просто не внедрили. Взяли меня как перспективного эникея, который не падает в обморок от слов RDP, TCP/IP, «маршрутизация» и «права доступа». И вот я осваиваюсь на новом месте, нахожу узкое место в сети, из-за которого жутко медленно работала 1С, предлагаю решение, устраняю проблему и мой начальник, админ из центрального офиса, решает, что я перспективный малый и мне можно доверить ключи от Рая. Впрочем, это был пароль администратора домена.

Гордости моей не было предела. Ещё бы: из грязи в князи! Напрягал меня лишь тот факт, что в AD я, мягко говоря, не силён и вообще только читал, что есть такая технология. Привычным для себя путём решил скачать Очень Толстую Книгу и стать-таки гуру Активных Каталогов. Поскольку уже в то время бумажные книги стали стоить как вертолёт, я залез в Гугл, забил туда «администрирование active directory книга скачать», после чего жмякнул первую же ссылку. Экран немедленно покрылся психоделическими цветами, и поверх этого вылезло окно с ужасными надписями:

Ваш компьютер заблокирован УФСБ КГУ ЦРУ Министерства внутренних дел за просмотр некропедозоопорно на сайте ОченьНеприличноеНазвание.com! Заплатите штраф, отправив SMS на номер 7-9xx-xxx-xx-xx! Не пытайтесь перезагрузить компьютер, иначе все ваши данные будут удалены!

У меня просто отвисла челюсть. Вот так я, до этого смеявшийся над такими случаями, сам взял и попался на винлокер. Одним кликом по ссылке.

Меня спасли только опыт работы эникеем в разнообразных условиях и любознательность, из-за которой я знал все интересные места в системе. Рука на автомате вдавила reset, ПК ушёл в ребут, я пожмякал F8, загрузился в безопасном режиме, вычистил все известные мне пути автозапуска, удалил сам исполняемый файл, прогнал весь винт свежескачанным антивирусом и перезагрузился обратно в свою учётку. После этого я накатил плагин для блокировки скриптоты на браузер и по сию пору живу в добром здравии, чего и всем желаю.

Забористая порнушка этот Active Directory, не находите?

13240

Люстра луддита

Люстра Чижевского — вещь хорошая. Особенно когда эту люстру решила внедрять охрана труда, типа, оздоравливать сотрудников.

Приходим — висит. Причём на недоступной высоте — потолки у нас высоченные. Работает, не работает — непонятно, звуков не издаёт, выключателя не видно нигде. Как потом выяснилось, люстра таки работала. А выключателя просто не было.

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

13229

Final Fantasy вслепую

Люблю старые приставочные игры, до сих пор играю на «Фамикоме» и «Сеге», но больше всего мне нравятся игры для «Супер-Нинтендо». Сейчас приставка стоит больших денег и есть некоторые проблемы с картриджами, поэтому единственным выходом был эмулятор.

Как-то на днях я случайно забрёл в магазинчик, торгующий б/у комплектухой к компам, вспомнить молодость, так сказать. Руки зачесались, и в голове сразу родился План. Берём мамку на Атоме с пассивным охлаждением, покупаем корпус Mini-ITX в стиле игровой консоли, накатываем ось с эмуляторами, а в тумбе под телевизором как раз есть подходящее место. Я сразу взял мамку в сборе (Атом 1,6, два гига оперативки, встроенное видео с разъёмом VGA), винчестер был дома, корпус заказал в соседнем магазине. Расходов всего на 4000 рублей, а получилась отличная система для запуска эмуляторов и нетребовательных нативных игр.

Всё собрал, протестировал, эмуляторы работают. Красота! Поставил свою мегаконсоль на место, протянул провода. Разворачиваю телевизор, сморю на разъёмы: антенна, тарелка, несколько USB и HDMI, LAN, CI, SCART, AV, гнездо наушников, аудиовход…

А входа VGA нет.

13150

Зевс, мать его растак

Куртки из синтетики — это выгодно, тепло и иногда даже красиво. Ноутбуки с металлическим корпусом — это стильно, надёжно и чаще всего красиво…

…но, как выяснилось, не очень совместимо. Лёгкая искра на пальце — и ноутбук тухнет. На осознание случившегося потребовалась минута, затем час был потрачен на пересказ словаря непечатных выражений. Во сколько обойдётся ремонт, представить страшно. А ведь достаточно было коснуться батареи после снятия злосчастной куртки…

13143

Простите наш админский

После трёх лет работы мальчиком по выезду в аутсорсной фирме я сказал себе: «Хватит! Не могу больше ездить по всему своему необъятному городу и месить рваными кедами столичную грязь! Надоело быть полуголодным, как студент!» — и пошёл искать работу. Сколько я фирм и контор повидал в процессе собеседований: прогрессивные с новеньким оборудованием, маленькие фирмы с перегретыми, замшелыми пылью серваками. Видел толстых админов, схвативших диабет на почве пива, фастфуда и газировки, а также энергичных ужаленных в мягкое место молодых людей, которые маленьким ураганом носятся по зданию. Софт везде используется тоже самый разный, от линуксоподобного до каких-то неизвестных мне штучных экземпляров.

На одном из собеседований я познакомился с коллегой по несчастью (Димон, если это читаешь — с меня пиво!). Ожидая сперва девушку-кадровика, а потом Самого Главного Админа, мы разговорились, начали меряться письками, кто больше умеет и знает. Оказалось, что поровну: когда один из нас начинал описывать проблему, второй неизбежно выдавал решение. При этом оба восхищались, как аккуратно в помещениях смонтирована сеть, видеонаблюдение, как незаметно висят коммутационные шкафы. Сотрудники фирмы спокойные, улыбчивые — видимо, никого не нервировала их техника.

Собеседовать нас пришла целая делегация: кадровик, кто-то из начальства и сам Админ, который выплыл, благоухая парфюмом, гладко выбритый, в строгом деловом костюме. Типаж такой мучительно знакомый… «Джеймс Бонд, мать его!» — пронеслось у нас в головах.

Рассматривать под микроскопом нас не стали, а погнали сразу по всем закоулкам фирмы, причём обоих, чтоб лишний раз не повторять. Каверзные вопросы сыпались со всех сторон, мы отбивались как могли. В процессе я видел сервера, крутящие в своём нутре БД в опенсорсной среде, виндовые рабочие компы с проплаченными лицензиями на всё платное. В конце нас усадили перед большой сетевой бандурой от «Сиськи», которая выполняла роль шлюза, сетевого экрана и бог знает чего ещё. Нужно было выяснить, почему железка не пускала некоторые важные программы на внешние сервера. Я этот агрегат видел впервые, мой коллега тоже. Однако набросились мы на проблему с увлечением. С красными от напряжения рожами мы закончили, и нас отправили по домам ждать решения.

На следующий день мне сообщили без объяснения причин (ну как же без этого?), что я был забракован. Мой коллега, как это ни странно — тоже, однако он таки выяснил, в чём тут дело. Оказалось, что на последнем этапе собеседования мы так увлеклись железкой, что перестали обращать внимания на своё поведение. Отборный мат вполголоса, который витал вокруг нас, заставил девушку-кадровика покраснеть и ретироваться. Главный Админ тоже признался, что уши в трубочку сворачивались, а руки чесались надавать по шеям таким «специалистам», которые позволяют себе высказывания: «А это что за х#$ня?.. А как этот бред работает?.. Ух ты, е&@ть, работает!.. Оба-на, кнопочка!» Глаза и руки наши делали, а вот рот жил своей жизнью и выдавал перлы, которые даже мозг не фиксировал. При этом мы умудрялись звонить в техподдержку и меняли свой лексикон на вежливый и спокойный. Админ выдал свой вердикт: «Неумёхи и раздолбаи», директор решил, что такие сотрудники не вписываются в корпоративную обстановку.


Мы эникеи, то есть разнорабочие в мире IT. Нам даёшь проблему — и мы её решаем. Неважно, на чём крутится проблемный софт, на какой ОС. Если использовать аналогию с топорами, то мы сперва получаем в руки топор, крутим его в руках, пытаясь понять, какой из его элементов необходим для выполнения основной функции (ага, это — рукоятка, за неё держать надо; это — лезвие, им рубят; это — обух, он нужен для утяжеления и для второстепенных задач). Мы учимся в процессе, выясняя, что лобзиком можно подпилить дерево, но это долго и неэффективно, топор рулит. А вот рубить топором деревянную планку опасно потерей самой планки — в щепки разлетится, тут уже надо брать инструмент потоньше. Какой? Гугл в помощь, главное — не обращать внимание на умников, которые рассусоливают на несколько страниц форума, как им удобно держать маленькую ручку лобзика, а не толстый дрын топора.

Есть обученный специалист, которому не надо крутить в руках топор. Каждый новый инструмент со всеми свистелками он уже умеет брать в руки, делать правильный замах и валить дерево с двух ударов. У него в сарае есть целый шкаф, где лежат топоры, лобзики, рубанки. Он не будет брать рубанок и строгать им дерево. Он за это знание заплатил деньгами и за это получает ещё большие деньги. Есть мастера, у которых лежит большой деревянный ящик с набором блестящих деталей. Если стандартный инструмент не выполнит какую-то задачу, то можно из набора собрать инструмент нужный, а человек, знающий, что ему нужно, сделает это без напряга.