До недавнего времени в качестве VoIP аппаратов мы использовали продукцию Fanvil. И в целом всем были довольны. Управление из единой точки есть, качество связи удовлетворительное, но оставалось ощущение какой-то незаконченности или даже недосказанности (понимайте как хотите :))) В общем поиск «идеального телефона» в фоновом режиме, но все время продолжался. И вот мне в руки попал Grandstream GXP1165. Имея более именитого производителя данная модель находится в той же ценовой категории, что и китайские Fanvil-ы. Обладает всеми необходимыми функциями и имеет более интуитивное обозначение на кнопках и портах подключения. Кроме того, с некоторых пор, одним из решающих факторов при выборе IP телефона для меня является функция авто провижинга. Данная модель grandstream его обещала. Об этом дальше и пойдет речь.
Читать полностью »
Метка «bash» - 2
Auto provisioning для grandstream или вынимаем и вкладываем душу в GXP1165
2013-11-05 в 18:53, admin, рубрики: auto provisioning, bash, grandstream, ip-телефония, provisioning, voip, метки: auto provisioning, bash, grandstream, provisioning, voipДесятка лучших консольных команд
2013-10-21 в 21:30, admin, рубрики: bash, linux, mtr, sudo, консоль, Оболочки, рейтинг, системное администрирование, метки: bash, http server, linux, mtr, sudo, консоль, рейтинг, системное администрирование В данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Читать полностью »
Это не статья, а краткий how to по кастомизации bash'a.
Думаю каждый, не очень опытный, пользователь производных от линукса систем работает с консолью, и иногда сталкивается с разными проблемами или неудобностями. Однажды, точнее сегодня утром, я подумал «хватит это терпеть» и нагуглил путь к интересному файлу, который помог мне решить все мои проблемы:
~/.bashrc
Если вы о нем не знали, то загляните под кат, там найдете пару костылей
Небольшое оглавление:
1. Подсветка
2. Алиасы
3. Функции
3. Все сломалось, как вернуть?
Linux pipes tips & tricks
2013-09-25 в 9:22, admin, рубрики: bash, linux, pipe, метки: bash, linux, pipePipe — что это?
Pipe (конвеер) – это однонаправленный канал межпроцессного взаимодействия. Термин был придуман Дугласом Макилроем для командной оболочки Unix и назван по аналогии с трубопроводом. Конвейеры чаще всего используются в shell-скриптах для связи нескольких команд путем перенаправления вывода одной команды (stdout) на вход (stdin) последующей, используя символ конвеера ‘|’:
cmd1 | cmd2 | .... | cmdN
Например:
$ grep -i “error” ./log | wc -l
43
grep выполняет регистронезависимый поиск строки “error” в файле log, но результат поиска не выводится на экран, а перенаправляется на вход (stdin) команды wc, которая в свою очередь выполняет подсчет количества строк.
Логика
Конвеер обеспечивает асинхронное выполнение команд с использованием буферизации ввода/вывода. Таким образом все команды в конвейере работают параллельно, каждая в своем процессе.
Размер буфера начиная с ядра версии 2.6.11 составляет 65536 байт (64Кб) и равен странице памяти в более старых ядрах. При попытке чтения из пустого буфера процесс чтения блокируется до появления данных. Аналогично при попытке записи в заполненный буфер процесс записи будет заблокирован до освобождения необходимого места.
Важно, что несмотря на то, что конвейер оперирует файловыми дескрипторами потоков ввода/вывода, все операции выполняются в памяти, без нагрузки на диск.
Вся информация, приведенная ниже, касается оболочки bash-4.2 и ядра 3.10.10.
Простой дебаг
Утилита strace позволяет отследить системные вызовы в процессе выполнения программы:
$ strace -f bash -c ‘/bin/echo foo | grep bar’
....
getpid() = 13726 <– PID основного процесса
...
pipe([3, 4]) <– системный вызов для создания конвеера
....
clone(....) = 13727 <– подпроцесс для первой команды конвеера (echo)
...
[pid 13727] execve("/bin/echo", ["/bin/echo", "foo"], [/* 61 vars */]
.....
[pid 13726] clone(....) = 13728 <– подпроцесс для второй команды (grep) создается так же основным процессом
...
[pid 13728] stat("/home/aikikode/bin/grep",
...
Видно, что для создания конвеера используется системный вызов pipe(), а также, что оба процесса выполняются параллельно в разных потоках.
Читать полностью »
Шахматы на чистом sed
2013-08-22 в 9:45, admin, рубрики: bash, sed, ненормальное, ненормальное программирование, шахматы, метки: bash, sed, ненормальное, шахматыВ Линуксе и многих других системах существует утилита командной строки sed («сед») — это несложный редактор, которые преобразует текст, попадающий ему на вход при помощи несложных команд.
Его, в основном, используют для всяких мелких нужд в bash-скриптах — заменить одну строку на другую, что-то удалить и так далее. Если говорить терминами более привычных языков, в «седе» доступны две строковые переменные, в одной из которых можно что-нибудь проверять, заменять, а со второй только обмениваться данными из первой, метки, команды переходов на метки и группировка команд, плюс ещё несколько менее полезных.
Вот на этом безобразии я решился написать шахматы, причём такие, чтобы можно было бы играть с компьютером.
Читать полностью »
"/sbin/powerOffVms" в ESX 4.1
2013-08-02 в 8:59, admin, рубрики: bash, ESX, ESXi, виртуализация, метки: bash, ESX, ESXi Руководство в конторе, где я работаю, поставило задачу отработать автоматическое выключение серверов, когда бесперебойник переходит на работу от аккумуляторов. Часть серверов бегает на windows (о них я даже не думал) и часть на esx/esxi, которые беспокоили меня больше всего, ибо опыта работы с никсами у меня очень и очень мало, особенно написания всяческих скриптов. Но задача поставлена и надо ее решать.
Начал потихоньку изучать этот вопрос, и я прям обрадовался, когда вышел на бинарник в esxi 5.x powerOffVms, который завершает работу гостевых систем при включенной у них соответствующий опции. Но энтузиазма поубавилось, когда такой штуки не обнаружилось в esx версии. В общем, было принято решение реализовать эту фичу на bash в esx (как раз понять, чем он и для чего дышит).
Все, что пойдет сейчас ниже, может быть реализовано различными способами, которые, возможно, будут правильнее, но кидать задуманное уже не хотелось.
Читать полностью »
«Mальчики — налево, девочки — направо», или добавляем поле «Gender» в БД Oracle
2013-07-31 в 5:22, admin, рубрики: bash, curl, oracle, метки: bash, curl, oracle… имеется три типа драконов: нулевые, мнимые и отрицательные. Все они не существуют, однако каждый тип — на свой особый манер. Мнимые и нулевые драконы, называемые на профессиональном языке мнимоконами и нульконами, не существуют значительно менее интересным способом, чем отрицательные.
Станислав Лем,
Кибериада
Преамбула
Конструктивной критики статьи «Проблемы слияния записей в сложносвязанной таблице Oracle» пост. Попытаемся проанализировать методы решения задачи выявления пола человека на основе его клиентских данных в БД Oracle.
Читать полностью »
Незамысловатый способ запустить проект на исполнение из Vim, из файла любой вложености
2013-07-20 в 15:32, admin, рубрики: bash, vim, Программирование, метки: bash, vim Этот простой скриптик может пригодиться когда хочется, ничего специально не настраивая, запустить проект на выполнение прям из Vim по клавише F5, когда открыт файл из любой поддиректории.
Читать полностью »
Включение сервера с помощью мобильного телефона из внешнего мира
2013-06-28 в 15:45, admin, рубрики: bash, Cisco, linux, Nokia N9, perl, Ubuntu, wake-on-lan, ит-инфраструктура, Серверное администрирование, системное администрирование, метки: bash, Cisco, linux, Nokia N9, perl, Ubuntu, wake-on-lan Доброго времени суток читатели! Всё началось с того, что работая удалённо в терминале понадобилось перезагрузить сервер. Толи день не задался, толи мысли были о чём-то другом и вместо команды:
sudo shutdown -r now
отправил его отдыхать после нелёгкого рабочего дня, командой:
sudo shutdown now
Enter
И всё произошло машинально и так быстро, что даже сам не успел понять. Понимание стало приходить минут через 15-20, после безудержных попыток подключится удалённо к терминалу. И думаю даже не стоит говорить о том как далеко находился сервер, и добраться до него было практически невозможно. После долгих телефонных разговоров и объяснений куда кому пойти, и что где нажать, сервер всё же вернулся в рабочий ритм. После чего и появилась идея о включении сервера удалённо.
Читать полностью »
Парсинг CSV-файла средствами bash и awk
2013-06-28 в 9:37, admin, рубрики: awk, bash, Оболочки, Песочница, метки: awk, bashДоброго времени суток, Хаброчитатель!
Возникла у меня необходимость перевести интерфейс одной системы. Перевод для каждой формы лежит в отдельном XML-файле, а файлы группами разбросаны по папкам, что очень неудобно. Решено было создать единый словарь, чтобы в Excel’е работать с переводом всех форм. Данная задача в свою очередь разбивается на 2 подзадачи: извлечь информацию из всех XML-файлов в один CSV-файл, после перевода из CSV-файла создать XML-файлы с прежней структурой. В качестве инструментов были выбраны bash и awk. Первую подзадачу описывать смысла нет, так как она достаточно тривиальная. А вот как распарсить CSV-файл?
Читать полностью »