ScriptStealer
New member
Пролог: откуда ноги растут
Помните Алексея? Того самого, который перестал моргать и бил себя током? Если не читали — потом поищите, тема отдельная. После того случая меня в офисе прозвали «Безумный тимлид». Причина была: я начал проводить стендапы с таймером, требовал логировать всё, включая походы в туалет, и записал скрипт, который отправлял уведомление в слак, если разработчик не коммитил больше трёх часов подряд. Коллеги меня боялись и недолюбливали.А Антон с маком вообще демонстративно пересел на другой ряд столов, «подальше от психа».
И вот я решил, что хватит. Пора менять репутацию. Не скидывать напряжение, а становиться крутым. Тем самым крутым, которого все уважают за скилл, а не боятся за ебанутость. Но с моим везением...
Предыстория: конфликт миров
В нашем отделе вечная война: линуксоиды против виндузятников. Я всю жизнь сидел на Windows — умел открыть браузер, запустить IDE, разархивировать zip. Всё остальное делали за меня коллеги. Но пришёл в компанию новый админ — Вован. Борода, свитер с оленями, в глазах — глубокая печаль человека, который помнит, что такое компиляция ядра в 90-е. И его вечное:— Лёха, ты тимлид, а сидишь на венде. Как так? Переходи на линукс! Там терминал — это сила.
— Вован, мне код писать надо, а не рыцарские турниры с клавиатурой.
— Именно! Свобода, чувак. На винде ты живёшь в клетке. На линуксе клетки нет — только бездна, в которую ты сам шагаешь.
Коллеги хихикали. Особенно Антон на маке. Он вообще ни в одной войне не участвовал — сидел со своим «яблоком» и примирительно говорил: «Ребят, у каждого своя боль». Я сломался. Решил доказать, что тимлид уровня «выше среднего» может всё.
Выбор дистрибутива
Пятница, 23 часа. Я сижу дома с кружкой кофе, открыл YouTube — 348 роликов про «линукс для начинающих». Все как один советуют Ubuntu.— Ubuntu — для бабушек, — заявил Вован в одном из видео. — Mint — скучный. Debian — стабильный, но нудный. Arch — для джедаев. Бери Arch, Лёха. Или не бери, если ты ссыкло.
Ну как тут устоять? Я выбрал Arch. Потому что «I use Arch btw» звучит гордо. Потому что хотелось бы почувствовать себя элитой.
23:00 — создаю загрузочную флешку. Утилитой Rufus. Три раза, потому что первые два я случайно форматировал диск D, где лежали сериалы и бэкапы телефона.
00:30 — случайно удаляю раздел с Windows. Навсегда. Мои игры, рабочие файлы, сканы паспорта для криптобирж — всё. Я только что уничтожил три года цифровой жизни.
01:00 — назад пути нет. Эйфория смешивается с отчаянием. Я сижу перед голым текстовым установщиком Arch и чувствую себя космонавтом, у которого сгорел теплозащитный экран.
02:00 — ставлю Arch по гайду с форума. Половину команд просто копирую, не вникая. Там было что-то про fdisk, про mkfs.ext4, про genfstab. Я вводил lsblk раз двадцать, чтобы понять, какой диск системный, а какой — пустой.
03:00 — система загружается, но внутри только терминал. Чёрный экран, белый курсор, зловещая тишина. Чувствую себя хакером из кино. Начинаю печатать что-то типа sudo make me-a-coffee --yes. Не работает.
04:30 — каким-то чудом ставлю GNOME, Firefox через pacman. Всё запускается. Интерфейс красивый, но всё тормозит. Потеря данных за три года? Пфф, детали. У меня теперь Arch.
Чувствую себя героем. Адреналин зашкаливает.
Первый рабочий день
Приезжаю в офис. Достаю свой старенький ноут ASUS, гружусь. Arch летит — в том смысле, что летят мимо сообщения об ошибках. Экран мигает, как дискотека 90-х.— Вован, помоги, — шепчу я. — Драйверов нет.
— А-а-а, Nvidia, — усмехается он. — Классика. Убей в себе надежду, Лёха. Убей её собственными руками.
Он колдует в терминале минут двадцать. Звук появляется. Wi-Fi настраивается через кабель от принтера, потому что драйвер беспроводной сетевухи решил, что я не заслужил интернет. Я сижу на корточках возле системного блока принтера, потому что кабель короткий. Начальник проходит мимо и спрашивает:
— Алексей, почему вы на полу?
— Отрабатываю Agile, сижу на корточках, чтобы мыслить гибко, — ответил я.
Начальник покивал и ушёл. Больше он ко мне в этот день не подходил.
Скрипт и почтовая катастрофа
Решил я показать всем свою крутость. Написал скрипт на bash, который собирал отчёт по коммитам за день и отправлял начальнику на почту. Всё красиво: tail, grep, awk. Работает локально — отлично.И подумал: «А почему бы не запускать его раз в час? Заодно покажу отделу, на что способен крутой админ».
Добавляю задачу в cron:
Код:
0 * * * * /home/alexey/report.sh
Через час начальник зовёт меня в кабинет:
— Алексей, откуда у меня 50 писем за последние десять минут? Скрипт работает, но вчерашние логи, позавчерашние, позапрошлогодние? Ты в цикле отправил всю историю коммитов за три года.
Я открываю скрипт. Вместо того чтобы брать последние строки tail -n 100, я просто взял tail. Без параметров. Он взял всё. По 100 писем в минуту.
Хорошо, что системный администратор заметил, что почтовый сервер не упал. Плохо, что меня больше не пускали к крону.
Логи и чёрный юмор
Скрипт отключили, но в логах системы жила моя первая запись, сделанная пока я разбирался с настройкой. Антон при очередном код-ревью увидел:[ERROR] alexey blinked 127 times
— А это что за херня? Почему система отслеживает моргание?
— А... это... я тестировал детектор усталости.
— Кофе в логах? Серьёзно?
— Тоже тест был.
Вован, проходивший мимо, добавил:
— Лучше бы ls изучал, Лёха.
Я покраснел, закрыл терминал и до конца дня работал через мышь.
Великая переустановка
Три месяца я кое-как выживал на Arch. Работал, коммитил, даже пару раз успешно показал скрипты на планерке. Начальник привык, коллеги перестали хихикать. Я почти поверил, что я крутой.И тут пятница, 18 часов. Я решаю обновить систему. Просто sudo pacman -Syu. Ну что может пойти не так?
Пакеты летят. 200, 300, 500. Ядро обновилось. GRUB — загрузчик системы — тоже. И после перезагрузки — чёрный экран. И надпись: /boot/vmlinuz-linux not found.
Я завис. Паника. Ноут не грузится. Мои три месяца работы, настройки окружения, скрипты — всё виснет в непонятном состоянии.
Вован уже ушёл. Я звоню ему в слезах:
— Вован, помоги. Я Linux убил.
— Чем, Лёха?
— Обновился.
— Не обновляйся по пятницам, я же говорил. Ну, бывай.
Но через час он приехал. Потому что Вован — нормальный человек. Загрузился с флешки, примонтировал корневую файловую систему, зашёл через arch-chroot, переустановил ядро, пересобрал GRUB. Я сидел рядом и смотрел, как настоящий мастер колдует. Даже бубна не было — просто пальцы бегают по клавиатуре.
— Запомни, Лёха. Бэкапы. И никаких обновлений в пятницу. А если бэкапов нет — ты не админ, ты самоубийца.
Урок выучен на всю жизнь. Почти.
Финальный позор
Через неделю после восстановления ноута у нас важная презентация перед крупным заказчиком. Начальник просит меня показать демо нового функционала.— Алексей, у нас проектор в переговорке. Подключите ноут и покажете скринкаст.
Подключаю. Arch грузится. Проектор пишет: «Unknown Display». Разрешение 640x480, размазано, полосы. Я лезу в терминал, ввожу xrandr. Смотрю доступные режимы. Их нет.
Пытаюсь сгенерировать модель вручную. Ввожу cvt 1920 1080 60. Получаю строку. Вставляю в xrandr --newmode. Добавляю на выход. Всё без ошибок.
Потом применяю: xrandr --addmode HDMI-1 1920x1080. И... чёрный экран. Гаснет и ноут, и проектор. Тишина. Заказчик переглядывается с начальником. Я нажимаю Ctrl+Alt+F2 — не работает. Alt+Backspace? Всё мёртво.
Через десять минут, когда я уже планировал писать заявление, ноут перезагрузился сам — сработал watchdog, я его месяц назад включил. Система встала. Проектор заработал с нормальным разрешением. Демо прошла успешно.
Но заказчик потом спросил у начальника в коридоре:
— А почему ваш сотрудник матерился на непонятном языке? Мы слышали «ёбаный в рот этот xrandr».
Начальник ответил: «Это Agile. Команда должна искренне выражать эмоции».
Эпилог
Я снова на Windows. Спокойно, предсказуемо, без танцев с бубном.Вован вздыхает:
— Лёх, ты вкуса не понимаешь.
Антон больше не ржёт — его мак сломался после обновления до очередной мажорной версии. Синий экран (или как там у них) — и всё. Он теперь тоже на Windows.
В логах моей старой системы до сих пор живёт [ERROR] alexey blinked 127 times. Команду ls я помню, хоть и боюсь набирать. vim всё ещё страшен — однажды случайно открыл его, не мог выйти полчаса, пока коллега не сказал про :q!.
На днях Вован подарил мне кружку. На ней написано:
Самая честная кружка в моей жизни. Стоит на столе, пью из неё кофе и вспоминаю тот вечер, когда я уничтожил свой офис за 40 минут, пытаясь стать крутым админом. Но я хотя бы научился делать бэкапы. Теперь делаю их каждый день. В Windows.«I use Arch btw — но только в виртуальной машине, потому что я не самоубийца».
Плюсаните, если у вас был похожий опыт. И помните: резервные копии — это не паранойя, это инструмент выживания дураков.