Автодополнение имён хостов из LAN в консоли

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

В принципе, имена хостов часто несложно получить с помощью Avahi (avahi-browse). Странно — думал я, — почему до сих пор никто не догадался сделать это в bash_completion?

Но оказалось, что всё гораздо хитрее. Автодополнение с помощью avahi-browse было реализовано в bash_completion, но начиная с какой-то версии было убрано из-за жалоб пользователей (действительно, когда в локалке слишком много машин, автодополнение начинает тормозить).

Это оказалось довольно легко исправить! В файле /usr/share/bash-completion/bash_completion надо раскомментировать часть функции _known_hosts_real(), отвечающую за Avahi (ищется текстовым редактором). Далее дописываем export COMP_KNOWN_HOSTS_WITH_AVAHI=1 в свой .bashrc и радуемся жизни. (Ах да, не забываем установить avahi-browse, который лежит в пакете avahi-utils в Debian).

Закрытие летнего сезона полётов

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

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

Зато продуктивной! Самолёт успел немного полетать недалеко от Переславля-Залесского (к сожалению, та вылазка закончилась смачной «морковкой», после которой ещё неделю самолёт пришлось склеивать из кусочков), а в предпоследние выходные октября летний полётный сезон закрылся полётами над Красноармейском. Более того, в этот раз получилось закрепить на самолёте камеру, так что в этот раз у нас есть видео с борта.

Bixler: продолжаем самолётную тему

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

В сравнении с моим старым самолётом, у него больший размах крыльев (1500 мм против 1000), более тяговитый мотор из коробки и куча места в фюзеляже. Плюс — огромное сообщество упоротых FPV-шников, которые наделали кучу разного кастома для этого многострадального самолёта. Что с ним только не делали: нагружали аппаратурой до потери планирования, поднимали на 3 км, даже летали над Питером из Москвы. В общем, если у меня появятся какие-то странные идеи, наверняка под это уже будут готовые решения. Плюс, каждый элерон у него управляется своей сервомашинкой, что позволяет реализовать подобие закрылок для более уверенного подъёма при взлёте.

Был вариант ждать аппарат из Китая, но конкретно Bixler-ы уже мало где есть в наличии. В итоге я психанул и купил модельку на Авито. Забегая вперёд, скажу, что предыдущий владелец, на мой взгляд, перестарался с доделыванием этого самолёта. Однако, самолёт у меня в руках, а это значит, что настало время летать!

Подробнее

Делайте бекапы

Пост из разряда типовых.

«Люди делятся на две группы — на тех, кто не делает бекапы, и на тех, кто теперь делает». И опять это работает не очень долго.

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

Моему SSD в ноуте идёт четвёртый год. По SMART он вроде бы ещё огурчик и ничего с ним не происходило. Однако, пару часов назад рабочая система на ноуте на минуту подвисла, после чего отрапортовала, что что-то пошло не так и корневой раздел перемонтирован в read-only. Я быстро загрузился с live-образа убунты и начал смотреть, что к чему, убедился, что что-то на харде действительно пошло не так, прогнал fsck, починил все косяки. Однако, паранойик во мне решил, что вот уж теперь точно настал момент сделать первый бекап всего. (Всего — это слишком круто. Для начала я решил слить всё жизненно важное — конфиги, документы, проекты и портфолио). mc говорит, что на копирование уйдёт ещё минут 40. Если брать вообще все файлы из хомяка — выйдет задачка часов на 30 при условии копирования на мой домашний сервер.

Сливаю важные данные, после чего пробую вернуться в рабочую систему. Может быть, это разовый косяк по совпадению неудачных факторов. Но новый SSD, кажется, уже пора подбирать.

UPD: Действительно, SSD всё-таки стареет. Параметр SSD_Life_Left сдвинулся на один пункт ближе к печальке. В результате сбоя немного пострадал initramfs-tools, но вроде сейчас всё в норме, конфигурационные файлы восстановил из репозитория.

rssh, или Как разрешить SCP, но запретить SSH

Вполне адекватная ситуация: у вас есть удалённая Linux-машина с доступом по SSH, и вам срочно нужно дать кому-то из знакомых возможность загрузить на эту машину файл. Разумеется, нам абсолютно лениво разворачивать ради этого FTP-сервер. Да и зачем, когда есть SCP?

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

Выход вроде как всплывает: надо заменить пользователю shell по умолчанию (/bin/sh) на что-нибудь другое. Вот только что?

Подробнее

Мой Linux орёт на меня! (+ решение проблемы)

Да, не самая приятная история, связанная с особенностями Pulseaudio. Но хорошо всё то, что хорошо кончается (или разрешимо для этого).

Проблема

Сижу я за работой, в фоне тихонько играет музыка. В какой-то момент отлаживаемое приложение подвисает, я пытаюсь отключить его соответствующей кнопкой окна. Разумеется, без ответа. Но кеды умные — подождут несколько секунд, а потом выплюнут окошко с вопросом «Приложение не отвечает на SIGTERM, прикончить его SIGKILL?». Окошко выплёвывается с характерным системным звуком.

И вот, кнопка завершения нажата, ждём эффекта. Тут из 40-ваттной акустики, подключенной к ноуту, раздаётся громкое «БР-Р-ЯМЦ», разрушая гармонию и покой одиночества в небольшой квартире, попутно заставив проснуться соседей. Ах да, это системный звук. С непривычки откладвается груда кирпичей, проклинается всё на свете и окошко закрывается.

Но как же так? Я же ставил Master volume в 20%, оно не могло издать такой громкий звук?

Смотрим в трей и видим, что Master volume теперь не 20%, а 100%. Чудеса!

Повторные эксперименты показывают, что Master volume действительно выкручивается в максимум в момент проигрывания системного звука.

Подробнее

Toony Mugs, или Как разрисовать кружку и не сгореть от стыда

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

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

Очередным вечером мне вдруг надоело это бездействие. Я взял самую простую маленькую стеклянную чашку из сервиза и на ночь глядя попытался перевести на неё один из пони-артов товарища up1ter (кстати, если ты это читаешь — огромное спасибо за проделанную работу! Когда будет возможность — постараюсь подбодрить донатом :3). К сожалению, получилось так себе, но, думаю, скоро повторю попытку (фотография, тем не менее, лежит внизу).

Реакцией Богдана на эту кружку была вот эта замечательная мордаха:

В общем, глядя на это, я решил, что настал самый подходящий момент.

Подробнее

Address Sanitizer, или Что делать, если не работает valgrind

Случилась непростая ситуация. Есть код, написанный на С, который активно используется через CGo в проекте, написанном на Go. В какой-то момент программа начала падать с ошибками от malloc: то segfault, то memory corruption.

Логичная мысль: нужен valgrind с его memcheck, чтобы проверить, кто лезет поперёк батьки в пекло в невалидную память. Однако, попытка скормить валгринду бинарник, полученный от go build, приведёт только к разочарованию — даже на простом Hello World валгринд разразится сотнями ошибок и отправит разработчика на известные координаты.

Это происходит из-за того, что go runtime довольно специфичен и неплохо отличается от такового в С. (Подробности можно спокойно нагуглить по запросу «golang valgrind»).

Так как же нам разобраться, что происходит?

Подробнее

Winter Wrap Up

Всем доброй пятницы, друзья.

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

Забавно, но лучший способ вспомнить всё, что происходило за последнее время — залезть в телефон и вытащить оттуда фотографии. Чем я и попробую сейчас заняться.

Подробнее

Пешком на работу

Такое приятное и давно забытое ощущение, когда можно утром выйти из дома и с приятной музыкой в ушах пройтись пешком до работы. Честное слово, полчаса бодрого шага по морозцу в приятный солнечный день — и уже не нужен кофе для того, чтобы окончательно проснуться. Горячий завтрак, кружка чая с лимоном, немного разминки и свежего воздуха — кажется, это всё, что нужно для того, чтобы почувствовать себя человеком утром в будний день :)


P.S. Однако, не все горожане разделяют мой энтузиазм по этому поводу — после сегодняшнего мороза многие с утра не смогли завести машины.

P.P.S. И я в том числе :) Но ещё вчера в моих планах было в первый раз пройтись утром до работы пешком.

P.P.P.S. А ещё это подарило мне ценный час времени, пока в офисе почти никого нет.