Алексей и Великий Переход на Linux

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!.

На днях Вован подарил мне кружку. На ней написано:

«I use Arch btw — но только в виртуальной машине, потому что я не самоубийца».
Самая честная кружка в моей жизни. Стоит на столе, пью из неё кофе и вспоминаю тот вечер, когда я уничтожил свой офис за 40 минут, пытаясь стать крутым админом. Но я хотя бы научился делать бэкапы. Теперь делаю их каждый день. В Windows.

Плюсаните, если у вас был похожий опыт. И помните: резервные копии — это не паранойя, это инструмент выживания дураков.
 
Верх