В нашей базе данных есть список оборудования, к которому ежедневно приходится подключаться для получения информации. И так самой частой набираемой фразой в консоли стало telnet и соответсвенно хост к которому хотим подключиться. В windows настройка не составила труда, а вот корректная обработка в линукс оказалась не столь очевидной. Как и отсутствие информации о том, как это настроить.
Читать полностью »
Метка «bash»
Обработка URI форматов telnet:–host для linux
2017-07-09 в 2:36, admin, рубрики: nix, метки: bash, ssh, telnet, url, xdg-utils1. Чтобы быстро скопировать/переименовать файл с длинным именем, можно набрать:
cp /home/user1/myfile123456789.txt{,-new}
и обратно:
cp /home/user1/myfile123456789.txt{-new,}
2. Бесполезная, но прикольная форк-бомба (правда, не сработает, если у Вас задан ulimit для количества процессов):
:(){ :|:& };:
3. Эмулятор сетевого принтера на локальном компьютере:
nc -l -p 9100 > job.prn
4. Простейшее нагрузочное тестирование веб-сайта:
for i in {1..1000}; do echo ya.ru; done | xargs -P 20 wget &>/dev/null
5. Удобочитаемый вывод команды mount:
mount | column -t
Простой сбор статистики используя Counter
2014-06-26 в 21:07, admin, рубрики: bash, curl, javascript, аналитика проекта, веб-аналитика, ит-инфраструктура, Программирование, прототипирование, статистика, метки: bash, curl, javascript, monitoring, аналитика проекта, прототипирование, статистикаЭта статья может быть вам интересна, если вы ищите простой способ мониторинга состояния вашего небольшого проекта и известные средства сбора статистики не очень подходят.
Итак, у вас есть небольшой проект. Обычно у проекта есть некоторые характеристики, которые можно измерить. Помимо измерения часто бывает полезно посмотреть изменение характеристики за некоторое время. Это может помочь выявить проблемы на начальной стадии. Например, наблюдая за остатком свободного места на сервере можно прогрозировать аварийную остановку сервисов. Аналогично можно мониторить другие ресурсы — наличие свободной памяти, загрузку процессоров.
(попробуйте догадаться, что это за график — ответ находится в конце статьи)
JSON pipes в шелле
2014-06-01 в 9:39, admin, рубрики: bash, json, pipe, shell, интерфейсы, Программирование, системное администрирование, метки: bash, json, pipe, shellЧем больше я пишу однострочники в шелле, тем больше я прихожу к двум важным идеям:
- Это очень мощное средство для «непосредственного программирования», то есть указания компьютеру, что делать.
- Большая часть однострочника посвящена grep/awk/cut/tr, которые каким-то образом выковыривают и приводят в человеческий вид вывод предыдущих утилит.
При том, что модель pipe'ов восхитительна, совершенно грязные хаки по отлову нужных полей в выводе во втором пункте («а вот тут мы можем выделить нужное нам по характерной запятой с помощью awk -F, '{print $2}'...) делают процедуру спорной по удовольствию, и уж точно нечитаемой.
Ещё одна серьёзная проблема: при том, что шелл даёт довольно много идиом из функционального программирования, в нём нет идиомы фильтрации списка по результату выполнения внешней программы. То есть „грепнуть“ список мы можем. А вот оставить в списке только те элементы, для которых какая-то программа вернула „успех“ — нет.
При этом есть враждебная и не очень хорошо написанная среда — powershell (винды). В которых взяли хорошую идею (пайпы передают не текст, а объекты), но испортили её двумя вещами:
- Неэргономичной консолью виндов (
Shift-PgUp где, а?говорят, Ctrl-PdUp в новых версиях) - предложением пойти и выучить .net для того, чтобы нормально с методами работать.
- Отсутствием под большинство операционных систем
Хочется иметь объекты в пайпе в тёплом ламповом линуксовом шелле. С hand-candy (мало печатать), eye-candy (приятно смотреть) и общей эргономичностью процесса использования. Ещё хочется иметь возможность сочетать „новый подход“ со старым, то есть обычным текстовым pipe'ом.
Идея
Надо написать набор инструментов, которые позволят в pipe-style оперировать с структурированными данными. Очевидным выбором является XML JSON.
Нам нужно:
- Утилиты, которые примут типовые форматы на вход и сконвертируют их в json.
- Утилиты, которые позволят в pipe'е манипулировать с json'ом.
- Утилиты, которые приведут json в „обычный“ формат.
В этом случае человек не будет видеть json на экране, но будет иметь возможность работать с ним.
Для затравки
(для понимания я буду писать длинные имена утилит, в реальной жизни это будут короткие сокращения, то есть не json-get-object, а что-то типа jgo или jg)
Выводит только файлы, для которых file сумел определить тип:
ls -la | ls2json | json-filter 'filename' --exec 'file {} >/dev/null' | json-print
Выкачивает с некоторого сайта токен для авторизации, выковыривает его из json'а и выставляет в переменные среды окружения, после чего скачивает список и отфильтровав по регэкспу поле „автор“ выкачивает все url'ы:
curl mysite/api.json | env `json-get-to-env X-AUTH-TOKEN`;curl -H X-AUTH-TOKEN $X-AUTH-TOKEN mysite/api/list.json | json-filter --field 'author' --rmatch 'R.{1,2}dald*' | json-get --field 'url' | xargs wget
Парсит вывод find -ls, сортирует по полю size, вырезает из массива элементы с 10 по 20, выводит их в csv.
find . -ls | ls2josn | json-sort --field 'size' | json-slice [10:20] | json2csv
Скрипт обрабатывающий события системы с помощю DBus
2014-05-16 в 18:25, admin, рубрики: bash, dbus, метки: bash, dbus Dbus — средство межпроцессного взаимодействия. Другими словами, средство позволяющее одной программе «отдавать приказы» другой программе.
В сети легко найти примеры, как из командной строки с помощью DBus управлять различными программами. Но слабо раскрыта тема, как отслеживать сигналы исходящие от других программ. В данной стать хочу исправить эту несправедливость и разобрать пример обработки событий получаемых от системы по средствам Dbus.
Читать полностью »
Быстрое создание виртуальных хостов Apache при помощи bash скрита
2014-01-22 в 12:34, admin, рубрики: Apache, apache2, bash, Веб-разработка, веб-сервер, метки: apache2, bash, веб-серверНе так давно переехал с VPS на выделенные сервер и передо мной остро встал вопрос по переносу сайтов со на новый сервер, а именно по быстрому созданию виртуальных хостов и баз данных. Конечно же в довесок к серверу шла панель управления ISPmanager, но в этом случае мне не нравилось две вещи:
- Панель делает все за тебя, а мне хочется прокачать скил в области адмиистрирования.
- Не нравится способ создания сайтов через панель, а именно создаваемые пути до папки с сайтом (/var/www/user_name/data/www/site.ru)
В силу этого решил все настраивать ручками. Про установку Apache и php, писать не буду, так как и на Хабре и в интернете очень много материалов по данной теме. Нас же больше интересует быстрое создание пользователя, виртуального хоста, и базы данных. Кому интересно прошу в подкат.
Читать полностью »
Несколько бесплатных книг по программированию на русском языке
2014-01-16 в 11:26, admin, рубрики: bash, mongodb, redis, reverse engineering, rspec, ruby, smalltalk, vim, книги по программированию, Программирование, Учебный процесс в IT, электронные книги, метки: bash, mongodb, redis, reverse engineering, rspec, ruby, smalltalk, vim, книги по программированиюПредставляю вашему вниманию небольшую подборку бесплатных книг по программированию, думаю они могут многим оказаться полезными.
Александр Круглов — Ruby — Эту книгу можно использовать как справочник и как отдельный учебник по Ruby. Для изучающих Rails считаю исчерпывающим руководством по языку. Версия языка изучаемая в этой книге — 2.0.0p247.
Слова автора: Не думайте, что прочитав эту книгу вы сразу станете писать высоконагруженные приложения. Максимум чему вы научились — это программирование небольших скриптов, способных немного облегчить вашу повседневную работу. Еще множество необходимых знаний о стиле кода, тестировании и отладке, архитектуре и оптимизации (и т.д.) отделяет вас от гордого звания программиста. Могу лишь надеяться, что удовольствия от работы с Ruby поможет преодолеть все эти препятствия и сообщество получит еще одного единомышленника. Github репозиторий
Удобная работа в консоли, или красим STDERR в красный цвет
2013-12-28 в 21:23, admin, рубрики: bash, usability, Программирование, метки: bash
Работа в консоли
Многие из нас пользуются консолью каждый день, и, наверное, каждый задавал себе вопрос: как я могу сделать свою работу в консоли эффективнее? Что я могу сделать, чтобы тратить меньше времени на выполнение рутинных операций? В этой статье я бы хотел вкратце рассказать о нескольких простых, но полезных вещах при работе с bash, о которых вы, возможно, не знали.
Читать полностью »
Универсальный способ быстро сделать скриншот в linux
2013-11-28 в 8:17, admin, рубрики: bash, DropBox, imagemagick, linux, screenshot, велосипед, метки: bash, DropBox, imagemagick, screenshot, велосипедКак дошло до жизни такой
С переходом ubuntu на unity как-то резко пришло просветление и жажда чего-то такого, что не приходилось бы раз в пол года переделывать с нуля. Поставил себе arch, а там дошло до минимализма и нежной любви к xfce.
Правда, лень моя тогда ещё была не столь развита и скриншоты делались при помощи GIMP'а.
За подробностями — прошу под кат.
Как я вешал горячие клавиши на Unity sound indicator
2013-11-25 в 9:09, admin, рубрики: bash, Ubuntu, unity, Убунтариум, метки: bash, Ubuntu, unity Я, как и многие кого мог заинтересовать этот пост, люблю оболочку Unity за удобные горячие клавиши и различные плюшки по интеграции с самым разнообразным софтом.
Одна из этих плюшек это интеграция плееров поддерживающих интерфейс mpris2 в sound indicator.
Что примечательно, веб-приложения, которые могут вести себя как плеер, так же попадают в этот замечательный список. И всё было бы круто, но эта прелесть, по страному капризу разработчиков не поддерживает никаких горячих клавиш, кроме изменений уровня громкости.
Читать полностью »