LINUX.ORG.RU

Сообщения Kroz

 

Bash: зачем в условии пишут символ перед переменной: [[ «x$A» = «x$B» ]] ?

Форум — General

Всем привет

Помню встречал, что в условиях пишут символ перед переменной, например [[ «x$A» = «x$B» ]] . Помню, что даже вроде это нужно на случай, если одна из переменных окажется пустой. Но не могу воспроизвести кейс, когда это хоть как-то меняло бы поведение проверки условия.

Так зачем пишут символ перед переменной в условии?

 

Kroz
()

Feature request: для темы посмотреть кто на нее подписан и кто добавил в избранное

Форум — Linux-org-ru

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

А для параноиков предоставления выбора пользователю, добавить в профиль настройку «не показывать другим мои избранные темы» и «не показывать другим мои отслеживаемые темы», которые будут а) для профиля при просмотре другими пользователями - не показывать соотв информацию б) для данной темы при просмотре списка отслеживающих и кто добавил в избранное - показывать данного пользователя как «anonymous»/«аноним»/«просил(а) не раскрывать имени»/..., или просто «еще X пользователей пожелавшие остаться неизвестными».

Большой поклон тому, кто возьмется запилить.

 ,

Kroz
()

emerge --resume -> Invalid resume list

Форум — General

Всем привет

emerge --resume не может возобновить установку. Куда копать?

$ emerge --resume

These are the packages that would be merged, in order:

Calculating dependencies... done!
 * Invalid resume list:
 *
 *   (u'ebuild', u'/', u'dev-qt/qtcore-5.7.1', u'merge')
 *   (u'ebuild', u'/', u'dev-util/gtk-doc-am-1.25-r1', u'merge')
 *   (u'ebuild', u'/', u'dev-lang/nasm-2.12.01', u'merge')
 *   (u'ebuild', u'/', u'dev-perl/URI-1.710.0', u'merge')
 *   (u'ebuild', u'/', u'dev-perl/Module-Build-0.421.800', u'merge')
...
*   (u'ebuild', u'/', u'kde-frameworks/kiconthemes-5.29.0', u'merge')
 *   (u'ebuild', u'/', u'kde-plasma/polkit-kde-agent-5.8.5', u'merge')
 *
 * One or more packages are either masked or have missing dependencies:
 *
 *   >=dev-libs/icu-51.2-r1:0/57=[abi_x86_32(-)] pulled in by:
 *     (dev-libs/libxml2-2.9.4-r1:2/2::gentoo, installed)
 *
 * The resume list contains packages that are either masked or have
 * unsatisfied dependencies. Please restart/continue the operation
 * manually, or use --skipfirst to skip the first package in the list and
 * any other packages that may be masked or have missing dependencies.


Из особенностей (может связано) - не установлена (и не устанавливается) версия python'а.
$ eselect python list
Available Python interpreters, in order of preference:
  [1]   python2.7
  [2]   python3.5
  [3]   python3.4


$ emerge -pv --nodeps portage

These are the packages that would be merged, in order:

[ebuild   R    ] sys-apps/portage-2.3.3::gentoo  USE="(ipc) xattr -build -doc -epydoc (-selinux)" LINGUAS="ru" PYTHON_TARGETS="python2_7 python3_4 python3_5 -pypy" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

 , ,

Kroz
()

Чем BFD лучше ICMP Ping

Форум — General

Всем привет.

Есть цель: мониторинг жив ли линк между двумя хостами. Один человек посоветовал Bidirectional Forwarding Detection. Но я как-то не могу понять чем оно лучше обычного ICMP Ping. Можете объяснить?

Кроме того интересуют следующие вещи:
- Как оно работает: какой уровень OSI?
- Есть ли соотв. софт для Linux?
- Обязательно ли устанавливать этот софт на обоих концах линки (на обоих концах)?
- Есть ли это «в каждом рутере» ведущих вендоров - Cisco, Juniper etc (ну, то есть насколько это фича редкая)?

Спасибо.

 , ccnp, , ,

Kroz
()

Сетевые интерфейсы: как узнать виртуальные/саб-интерфейсы

Форум — General

Всем привет

Есть некий хост. Там много интерфейсов, например, eth0, ueth0, utun, upub и др. Некоторые из этих интерфейсов реальные - которые подключены к switch'у (или vSwitch'у), некоторые - разного рода subinterface's.

Как понять какие из этих интерфейсов «реальные»?

Пока мыслю, что можно как-то понять драйвер/модуль или процесс, который порождает интерфейс, но пока ничего конкретного не нашел. Или в правилах udev поискать?

Еще было бы неплохо было бы знать какой родительский интерфейс у саб-интерфейсов, если это возможно.

Есть идеи как это сделать?

 , ,

Kroz
()

snmpd vs Zabbiх agent

Форум — General

Всем привет.

Смотрю, в и-нете расхваливают Zabbix. А чем обычный snmpd не устроил?

Вопрос интересует только в разрезе агента.

Спасибо.

 , , ,

Kroz
()

SNMP: Есть ли способ «подписаться» на trap'ы агента?

Форум — General

Всем привет

Стоит snmpd. В конфиге можно прописать кому отсылать трапы (trap2sink).

Допустим, появляется новый мониторинговый срервер. Он тоже хочет получить трапы. Он может «подписаться» на трапы агентов, если он знает их IP адреса? Или нужно править конфиги на каждом агенте?

 , ,

Kroz
()

А может ли быть SNMP v2c over TCP?

Форум — General

Всем привет

Слышал мнение, что SNMP over TCP может быть только у SNMP v3. Это так? Может ли быть, например, SNMP v2c over TCP?

В гугле не нашёл пруфов ни в одну, ни в другую сторону.

 ,

Kroz
()

SNMP agent эмулятор

Форум — General

Всем привет.

Нужно эмулировать метрики/трапы одного девайса. OID'ы есть.

В каком софте можно задать OID=значение и/или триггерить SNMP трапы для произвольных OID'ов? snmpd, как я понял, позволяет не для произвольных.

 ,

Kroz
()

Помогите настроить SNMPv3 AuthPriv

Форум — General

Всем привет

/etc/snmp/snmpd.conf

...
createUser user2  MD5 qwerasdf DES asdfzxcv # AuthPriv

rouser user2 noauth 1.3.6.1.2.1.1
...

Результат:
$ snmpget -v 3 -u user2 -l AuthNoPriv -a MD5 -A qwerasdf localhost 1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux lix 4.8.6-gentoo #3 SMP Mon Nov 7 09:29:21 EET 2016 i686

$ snmpget -v 3 -u user2 -l AuthPriv -a MD5 -A qwerasdf -x DES -X asdfzxcv localhost 1.3.6.1.2.1.1.1.0
Timeout: No Response from localhost.


Почему AuthPriv не работает?

 ,

Kroz
()

Конейнер с приложением и либами, только нужными ей на конкретной машине

Форум — General

Всем привет.

Допустим, есть машина, которая не обновлялась последние 100 лет. На ней нужно установить новую софтину. Чтобы не обновлять всю ОС, делаем контейнер, в который помещаем саму софтину и либы, которые ей нужны. Но не все, а только которых нет на существующей (хостовой) системе, или которые нужно обновлять.

Как я это вижу. Создается пустой контейнер; логинимся в него. Изначально внутри конейнера (гостевая система) видна вся (хостовая) ФС, так что по сути гостевое окружение ничем не отличается от реальной хостовой ОС. Далее мы устанавливаем софтину и обновляем/доустанавливаем нужные либы. Все изменения записываются только в контейнере (гостевой ОС) и никак не отражаются на реальной (хостовой) системе (например, посредством UnionFS/aufs/OverlayFS). Когда нужно запустить программу, контейнер маппит все файлы/ресурсы/окружения из хостовой ОС + накладывает сверху (добавляет, подменяет) те, которые присущи только гостевой системе; а далее запускает софтину.

Смотрел Docker. Там всё начинается с FROM, который, как я понял, создаёт полностью новое окружение. Без FROM, как я понял, нельзя. А можно ли чтобы там базовым image была существующая система?

Если нет - что есть кроме Docker, с подобный функционалом?

 , , ,

Kroz
()

sed: изменить только внутри ЧАСТИ строки, которая соответствует паттерну

Форум — General

Всем привет

Нужно чтобы некоторая операция (в данном случае - замена) применялась только для того куска строки, который соответствует паттерну.

Например, есть строка
abc_1.2.3.4_cde ТАБ 1.2.3.4

Хочу из нее сделать
abc_1.2.3.4_cde ТАБ 1|2|3|4

Вот это не работает, так как меняет в СТРОКЕ, которая соответствует паттерну.

$ echo -e "abc_1.2.3.4_cde\t1.2.3.4" | sed '/\t[0-9.]\+/ { s/\./|/g }'

abc_1|2|3|4_cde 1|2|3|4

А как сделать чтобы менялось только в той части, что после табуляции?

 ,

Kroz
()

А как на счёт чтобы Midnight Сommander мог работать с расширенными аттрибутами?

Форум — General

Всем привет.

Вообще, идея расширенных (extended) аттрибутов очень хороша: можно хранить дополнительную информацию о файле, например, keyword'ы, checksum'ы, откуда был взят, комментарии и т. п. Опять же, почти все популярные файловые системы их поддерживают. Но вот использование ограничивается тем, что зачастую работаешь с файлами в Midnight Commander'е или другом ФМ, а там поддержки расширенных аттрибутов нет, и банальная операция копирования сводит всё на нет.

Попросил команду MC добавить хотябы сохранение extended аттрибутов при копировании: http://www.midnight-commander.org/ticket/2468

Может кто поддержит/проголосует за фичу? Кому еще интересно?

Перемещено beastie из general

 ,

Kroz
()

Базы данных: зачем может понадобится разносить таблицы по разным базам данных?

Форум — General

Всем привет.

Разбираюсь в устройстве одной системы. Упрощая, она состоит из двух инстансов: Processing Node и Console. Данные хранятся в базах данных - в двух; назовём их db1 и db2. Processing Node ипользует данные только из db1, а Console - из db1 и db2.

Теперь вопрос: зачем могло понадобиться разносить таблицы по двум разным базам данных?

Спасибо.

 ,

Kroz
()

kde-artwork: что вместо него?

Форум — General

Всем привет

В Gentoo уже маскируют kde-artwork* . Что вместо него? Есть какие доп. пакеты с wallpaper'ами, иконками, цветовыми темами etc?

- kde-apps/kdeartwork-wallpapers-15.08.3-r2::gentoo (masked by: package.mask)
/usr/portage/profiles/package.mask:
# Johannes Huber <johu@gentoo.org> (1 Aug 2016)
# Masked for removal in 30 days. Dead by upstream. Last release
# with 15.08. Exported to kde-sunset overlay.

 ,

Kroz
()

Portage игнорирует python3_5

Форум — General

Всем привет

Установил python3_5 как основной:

$ eselect python list
Available Python interpreters, in order of preference:
  [1]   python3.5
  [2]   python3.4
  [3]   python2.7

$ python-updater
 * Starting Python Updater...
 * Main active version of Python:    3.5
 * Active version of Python 2:       2.7
 * Active version of Python 3:       3.5
 * Globally supported Python ABIs in installed repositories:
 *   gentoo:                         2.4 2.5 2.6 2.7 3.1 3.2 3.3 2.5-jython 2.7-jython 2.7-pypy-1.7 2.7-pypy-1.8 2.7-pypy-1.9 2.7-pypy-2.0
 *   x-portage:                      2.4 2.5 2.6 2.7 3.1 3.2 3.3 2.5-jython 2.7-jython 2.7-pypy-1.7 2.7-pypy-1.8 2.7-pypy-1.9 2.7-pypy-2.0

Но portage всё равно его игнорирует:
$ emerge --info | grep PYTHON
... PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4"...

И я бы забил, но пакеты ведь тоже его не видят. При установке portage приходилось вручную переопределять PYTHON_TARGETS, а если этого не делать, то:
$ emerge -pv --nodeps portage

These are the packages that would be merged, in order:

[ebuild   R    ] sys-apps/portage-2.3.0::gentoo  USE="(ipc) xattr -build -doc -epydoc (-selinux)" LINGUAS="ru" PYTHON_TARGETS="python2_7 python3_4 -pypy -python3_3 -python3_5*" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Как заставить portage развидеть python3_5 на моем компьютере?

 

Kroz
()

Эмуляторы терминалов: тест скорости, комментарии...

Форум — General

Всем привет

По мотивам этой темы решил потестировать терминалы на скорость.
KDE. Gentoo. tmux (ну, и без него). Большинство терминалов свежеустановленные, то есть без правки конфигов; кроме konsole и xterm.
Наверное тесты не самые канонично правильные. Где большие огрехи говорите.

UPD: Переделал тесты
- теперь время вычислял не секундомером, а с помощью bc.
- оказывается достаточно сильно тормозил (и, вчастности, вызывал рывки при прокрутке) conky; выключил его.
- на тесты сильно влияет размер окна; эти тесты делал при максимизированном окне.

Тестировал выводом файла messages:

$ cat /var/log/messages.log | wc -l
148836
Тестовая команда:
$ START=$(date +%s.%N) ; cat /var/log/messages.log ; END=$(date +%s.%N) ; D=$(echo $END - $START | bc -l) ; echo "Duration: ${D:0:-8}"
Результаты
xterm: 56.0; экран мигает
xterm+tmux: 87.2s; только нижняя половина экрана мигает

Eterm: 27.6s; выводится плавно
Eterm+tmux: 28.7s; выводится плавно

termite: 3.9s ; выводится рывками
termite+tmux: 13.0s ; выводится плавно

qterminal: 3.6; выводится еле заметными равками
qterminal+tmux: 12.6; выводится еле заметными равками

konsole: 2.1s; выводится еле заметными рывками, примерно через 1 секунду после начала вывода экран замер, и потом показало конец файла
konsole+tmux: 12.7; выводится еле заметными рывками

st: 1.4s; выводится очень плавно
st+tmux: 13s; выводится очень плавно

urxvt: 0.7s; выводится очень плавно
urxvt+tmux: 13s; выводится очень плавно

Некоторые комментарии

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

xterm: некоторое время пользуюсь им как легковесным. Не сразу разобрался с конфигом (~/.Xdefaults, после правки нужно запустить xrdb ~/.Xdefaults, комментарий начинается с '!' а не с '#', кое-какое меню вызывается по Ctrl+RightClick). Оказался и вправду тормозным.

Eterm: самый наркоманский терминал. Искаропки не понимает кириллицу, глючит с tmux (нижняя строка раз в секунду дублируется и плывет вверх). Внешни вид (тема) - welcome to 90-е, и как сменить - сходу не нашел. Кроме того - жуткий тормоз.

termite: в Gentoo пришлось подключить оверлей nightmare, что для меня минус. Терминал как терминал. По дефолту идёт достаточно приятная тема. Говорят, удобный.

konsole: пользуюсь давно. Всегда устраивал, но в последнее время стал искать более легковесных решений, в первую очередь по зависимостям. Из минусов - его нужно тюнить чтобы стал конфеткой, в том числе раскладку клавиатуры. Если бы не его зависимости от KDE библиотек - отличный терминал.

st: произвел очень хорошее впечатление: приятная дефолтная тема, самая плавная работа из всех, очень маленький размер. Правда конфигурируется методом правки исходников; но меня это мало пугает, так как операция разовая, в Gentoo это делается просто, да и дефолт неплох. Еще говорят, очень большой текст из буфера обмена не вставить.

urxvt: а я думал, что st по скорости уже ничто не обгонит :) . Еще говорят, что можно perl'е расширения делать. Ну ок.

Итог (для себя)
Или st или urxvt.

Замечания? Комментарии?

P. S. Как вовремя: Какой эмулятор терминала в качестве основного вы используете в 2016 году?
P. P. S. Вот бы еще такой бразуер найти...

 , , ,

Kroz
()

Первый элемент bash массива пропадает в командной строке

Форум — General

Доброго дня

Проверьте, пожалуйста, у себя в командной строке:

$ A=("one" "two" "three") ; echo "${A[0]} - ${A[1]} - ${A[2]}"
one - two - three

$ echo "${A[0]} - ${A[1]} - ${A[2]}"
 - two - three
Почему в результате второй команде нет первого элемента?

UPD: Еще странность: на только что запущенном шелле:
$ [[ -v A ]] && echo Exists
Exists
Куда копать?
$ bash --version
GNU bash, version 4.3.42(1)-release (i686-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

 

Kroz
()

Пропатчить конфиг перед его установкой в систему

Форум — General

Всем привет

Давно лелеял эту идею, пора воплощать...

Gentoo, работа с конфигами при обновлении пакета, как я ее понимаю:
1. Скачиваются файлы пакета; проверки, распаковки, компиляция...
2. Установка в песочницу
3. На каком-то этапе формируется файл конфигурации (кстати, точное определение еще нужно дать - см. вопрос 2).
4. Догадываюсь, что на этом этапе куда-то записывается «образ» конфига (наверное это хеш или что-то еще - см. вопрос 3), чтобы в следующий раз можно было сделать проверку модифицирован ли файл пользователем (см. шаг 5).
5. Проверяется (каким-то образом) модифицирован существующий (уже установленный) файл конфига пользователем.
6. Если существующий файл не был модифицирован, то emerge заменит существующий файл новым (из песочницы).
7. Если существующий файл таки был модифицирован пользователем, то новый конфиг будет установлен как ._cfg0001_xxxxxxx.

Проблема: любая модификация конфигов пользователем приводит к размножению ._cfg* файлов при апдейте пакетов.

Задача: патчить конфиг перед его установкой.

Вопросы:
1. Как выполнить скрипт сразу после шага 3 и желательно без модификации ebuild'ов? (Именно скрипт, так как простой patch в общем случае здесь не подходит)
2. Догадываюсь, что описанный механизм работы с конфигами работает не со всеми файлами. Например, если модифицирую /bin/mount, оно ж мне не создаст при обновлении ._cfg0001_mount? Где/как определяется что есть конфиг?
3. Расскажите, всё-таки, как происходит проверка конфигов? Где и на каком этапе записывается образ/хеш для сравнения?
4. На что еще имеет смысл обратить внимание для выполнения поставленной задачи?

Спасибо

Cast Pinkbyte

 ,

Kroz
()

Awesome: убирать меню при клике мимо него или переключении на другое окно

Форум — General

Всем привет!

Пробую awesome wm . Немного раздражает непривычное поведение системного меню.

Как сделать, чтобы меню убиралось при клике мимо него или переключении на другое окно?

Спасибо.

 

Kroz
()

RSS подписка на новые темы