bash

PS1 и как его едят

Grifon аватар

Итак, Уважаемый Линуксоид, ты уже разобрался с командной строкой, бодро отдаёшь команды и наблюдаешь за результатом. Но что-то в консоли тебя не устраивает, а что, ты и понять не можешь. Давай, я тебе помогу.

Демонизация по-быстрому или сага о правильном велосипеде.

CORPSE аватар

Что такое демон, человеку, знакомому с UNIX средой, думаю объяснять не нужно. Сегодня я расскажу, как быстро и просто запускать процессы в SysV-style системе в качестве демонов с pid, lock файлами и т.п., в общем, по-феншую. Думаю, новичкам пригодится. А может быть и не только новичкам.

Всё ниже описанное было реализовано и проверено на моём домашнем сервере, работающем под Debian Lenny 5.0.3.

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

Продолжение темы о gtkdialog...

CORPSE аватар

И ещё небольшое дополнение. Для удобства мне хотелось, чтобы у меня была отдельная вкладка с кнопками, быстро запускающими сканирование выбранного ip адреса или получение его доменного имени. Это делается очень просто. Смотрите приложенный файл. Любая кнопка, содержащая в теге action имя внешней программы будет её активировать. Кстати, тегов action для любой кнопки может быть сколько угодно. Если в конце команды не поставить "&", то GUI будет "зависать", на самом деле ожидая завершения программы. Для вывода результата я буду использовать xterm. Во-первых, потому что он лёгкий и быстрый, а во-вторых, у него есть замечательный параметр -hold, который позволяет оставлять окно открытым после работы команды. Как говорится, дёшево и сердито. :)

В аттаче скриншот и код.

Медитация и ёлочки...

CORPSE аватар

Меня посетило новогоднее настроение, пока я сегодня писал паттерны к sed. Один из них мне почему-то напомнил еловые лапы. Похоже, я схожу с ума, комрады!
Нужно было формировать паттерн для sed, производящий замену ' -> '\'', чтобы получить строку, содержащую комманду sed с новым паттерном и через echo отправить её на обработку bash. Уже повод для медитации... Но паттерн получился красивым.

Продолжение GUI на gtkdialog

CORPSE аватар

Итак, я решил связать графический интерфейс, который я написал для fping (http://www.permlug.org/node/5356) со скриптом, который ищет MAC адрес на коммутаторах (http://www.permlug.org/node/5344).

Было бы довольно удобно - выделить в левой части окна нужный IP адрес, нажать на кнопку и получить список портов, на которых виден нужный нам mac адрес.

С чего начинается строка или ещё одна загадка bash'а...

CORPSE аватар

Как я раньше думал, строка должна начинаться, как и всё остальное - с начала.

Использование именованных каналов FIFO

Grifon аватар

Итак, для чего я решил написать про эту вещь? Всё просто. Есть некоторые приложения, которые не имеют возможности писать данные в стандартный вывод или ввод, что делает невозможным использование перенаправление ввода/вывода, или "труб" (pipes). FIFO позволяет избежать промежуточных действий.

Создаём GUI к скриптам лёгким движением руки или GTK на bash

CORPSE аватар

Доброго времени суток всем. Чистая консоль - это конечно же, очень хорошо и практически не требует вычислительных ресурсов, но часто мы жертвуем оными ради некоторой доли удобства. Чем я вчера и занялся. Поставил себе задачу частично автоматизировать и собрать в одну кучку средства решения некоторых задач, связанных с сетью, с которыми мне приходится сталкиваться на работе. В идеале это будет некая панель управления на GTK, работающая по принципу "нажми на кнопку - получишь результат". Начать решил со следующей задачи: периодически нужно сканировать подсети на предмет находждения свободных и занятых ip адресов, а у живых хостов проверять на открытость определённые порты, получать их мак и dns адреса и т.п..

Поиск мак адреса на большом количестве коммутаторов...

CORPSE аватар

Не так давно на работе столкнулся со следующей ситуацией - существует десяток коммутаторов второго уровня D-Link и Allied Telesys, к которым подключено несколько сотен устройств разных организаций. Периодически возникает необходимость узнать, к какому порту какого коммутатора подключен определённый пользователь. Искать вручную среди нескольких сотен MAC адресов единственный нужный - довольно трудоёмкое занятие, отнимающее драгоценное время. Те, кто знаком с подобным занятием не по наслышке порой очень хотели бы воспользоваться чем-нибудь вроде grep или хотя бы сохранить список адресов в текстовый файл, поэтому я решил автоматизировать процесс поиска MAC'ов. Единственное, что нам для этого понадобится (кроме входящих в любой дистрибутив программ grep, cat и т.д.) - утилита expect.

Если хочешь быть здоров - сохраняйся и не слушай докторов...

CORPSE аватар

Я принёс вам ещё одну небольшую полезняшку, тоже связанную с резервным копированием. Давно ей пользуюсь и на работе и дома.

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

Принцип боевых действий: вместо редактора (я использую vim), запускаем скрипт, указывая в качестве параметра файл, который мы хотим отредактировать.

RSS-материал