LINUX.ORG.RU

Сообщения zolden

 

[Маршрутизация] Простой вопрос про 2 интерфейса в одной подсети

Есть далекий сервер. У него 2 интерфейса.
Один смотрит в сторону шлюза через который организован удалённый доступ, другой интерфейс смотрит во внутреннюю сеть.
Пока что этот далёкий сервер выступает промежуточным хопом для доступа извне ко внутренней сети.
Всегда поражался как тут рисуют схемы в псевдографике, я так не умею, но попробую:

Я->Шлюз->eth1(Далёкий сервер)eth0->Внутренняя сеть

На eth0 и eth1 висят адреса из одной сети (получается directly connected сеть через два интерфейса).
Внутренний адрес шлюза для доступа является маршрутом по умолчанию для далёкого сервера(через eth1) и всех железок за ним.
Вопрос в том, как красиво организовать доступ извне до внутренней сети через Далёкий сервер.
Сейчас пакеты адресованные хостам за eth0 уходят на eth1. Можно прописать статику до конкретных железок, но это неинтересно, даже не будь их много
Сервер далеко, поэтому дефолт трогать нельзя
Новые сети вводить нельзя

 

zolden
()

[awk] Манипуляции-инициализации-махинации с переменными shell

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

var1=$(awk '/searchstring1/{print $2}' <<<${content})
var2=$(awk '/searchstring2/{print $3}' <<<${content})
реализовать одиночным вызовом awk?

 

zolden
()

[whyyyyyy??!] дублирование ARP запросов

Вопрос собственно простой: почему могут дублироваться ARP запросы (разницы в несколько мс)?
Заметил это недавно в сети, вроде и вреда особого от этого нет, но всё-таки смущает, ибо совершенно непонятен механизм происходящего.
Обнаруживается это по дампу. Линуксы и железки совершенно разные, поэтому списываю пока на какую-то особую ядерную магию.
Единственное сходство: железки имеют несколько сетевых интерфейсов, несколько IP (+на некоторых есть VLAN интерфейсы, на некоторых бондинг)

zolden
()

[Google Chrome] Пропали все диалоги Open/Save

Сижу я, значит, ковыряю отвёрткой в ухе, вдруг чик - и звук пропал
Какое-то время назад ковырялся в chrome://flags а недавно заметил, что не работают диалоги Open/Save.
Во всех соответствующих сценариях просто ничего не происходит. Вообще ничего.
Соответственно, нельзя загрузить файл, либо сохранить куда надо
Пробовал сносить ~/.config/google-chrome, пробовал переустанавливать хром, выбирать stable/beta/dev - ничего не помогает.
Похоже на проблему на уровне ОС (kubuntu 11.10 KDE 4.74, но на 4.72 и 4.73 тоже было).
В firefox и rekonq всё работает нормально.
В гуглах находится пара-тройка похожих случаев без решения

 

zolden
()

[добрых советов тред] Читалка с монолингвальным словарём

Посоветуйте e-link читалку где есть монолингвальные словари из коробки, либо на которую можно их доустановить с минимальным геморроем.
Не знаю, что есть вообще на рынке в идеальном идеале хотелось бы поддержку всяких БСЭ, словарей Ожегова и прочих радостей.
Остальные вводные данные:
- качественный экран и хорошая эргономика в плане работы со словарём
- компактность - плюс
- читаться будет в основном художественная литература, так что проигрывание HD видео/аудио/фото, поддержка субпиксельного сглаживания pdf и интернетов, сверхбыстрое перелистывание - не обязательны

zolden
()

[bash] быстрая обработка вывода snmpget

Есть скрипт, опрашивающий железку по snmpget, и, в зависимости от ответа, переводящий её в другое состояние по snmpset.
Есть смысл его оптимизировать (переписывать на Си не предлагать, тут без вариантов)
Идёт последовательный опрос нужных OID'ов, с последующим грепом, что не очень быстро (даже полсекунды общего выигрыша уже будет хорошо).
Я пришёл к очевидному сворачиванию последовательных вызовов snmpget в один вызов, но в идеале хотелось бы избавиться и от внешних вызовов grep.
Вопрос собственно такой: как набор строк вида
OID1 = Online(n)
OID2 = Offline(n)
OID3 = Offline(n)
OID4 = Offline(n)
OID5 = Online(n)
OID6 = Offline(n)
...
можно преобразовать чисто средствами bash (у меня есть вера, что builtin функции работают быстрее) в...ну, по сути, в битовый массив наверно.
Конечно, ассоциативный массив, вида sensor[OID]=1|0, было бы совсем удобно и красиво, но тут на первом месте стоит быстродействие, так что к чёрту красоту

Последующая логика, грубо говоря, выглядит так:
if sensor[OID1]==Online then snmpset(OID2) = Offline

PS
Да, я понимаю, что основное время съест ввод/вывод snmp запросов и я пытаюсь экономить на спичках

 

zolden
()

[SSH] авторизация по ключам на разные хосты с одинаковым IP

Хотелось бы ходить на плавающий адрес (активную ноду) кластера по ключам. Единственный ньюанс в том, что после переключения кластера информация в known_hosts становится неактуальной, а каждый раз её обновлять руками не здорово. В мане есть ссылка на нечто похожее, но не то " It is thus permissible (but not recommended) to have several lines or different host keys for the same names"
Вопрос собственно один - реализуемо ли это без костылей и с сохранением секурности.

 

zolden
()

[limits] Too many open files

Иногда (после массового переподключения клиентов) на сервере(SLES10 x64) с базой (Oracle) наблюдаю в логах ошибку «Too many open files» и из-за этого не все переподключения проходят успешно.

>ulimit -Hn
65535
>ulimit -Sn
65535
>ulimit -n                                                                                                                                                  65535
>cat /etc/security/limits.conf
*    soft    nofile    65535
*    hard    nofile    65535
> sysctl -a | grep file                                                                                                  
fs.file-max = 6553600

Как бы это полечить?

zolden
()

Запуск нескольких экземпляров приложения

Ситуация следующая: есть приложение обрабатывающее UDP запросы.
Разработчики, когда его делали, посчитали, что «640К хватит всем», в итоге процесс может обработать максимум 500 тысяч запросов, занимая при этом около 3.5 гигов памяти.
500 тысяч это мало, сервер может потянуть гораздо больше, но лимит на количество соединений жёстко задан в коде.
Ограничение можно обойти запустив несколько экземпляров приложения (выделив другие адреса и порты), вопрос в том, что при запуске приложение проверяет, что другой экземпляр уже не запущен.
Это можно обойти переименовыванием бинарника и правкой стартовых скриптов, но что-то это как-то совсем в лоб и скучно, если я решу запустить их штук 10 сразу
Может есть какой-то стандартный велосипед покрасивее сделать так, чтобы процессы работали изолированно и друг о друге ничего не знали?

zolden
()

Цепочка из SOCKS прокси средствми ssh

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

Хотеть иметь доступ ко всем хостам/портам целевой сети, и если бы не было первого промежуточного хоста, то обычный ssh SOCKS прокси выполнил задачу.
Можно ли сделать цепочку прокси с винды на 1й, с 1го на 2й средствами ssh?
В наличии только ssh, никаких tun/vpn и прочих радостей типа sockschain нет, а по одному порту прокидывать лениво, ибо их много

zolden
()

Не найду настройку OSD в KDE 4.7.2

Как настроть цвет\контраст\внешний вид OSD (при регуляции громкости мультимедийными кнопками)?
Дефолтные настройки близки к «белому на белом» что со всеми прозрачностями и красивостями делает OSD малочитабельным

zolden
()

[антиквариат] старый проц на старый ноут

Есть ли ещё шанс купить ноутбучный проц типа Core 2 Duo T7ххх (Socket P), и если есть то где?
(hint: дефолт-сити)

zolden
()

[KDE] Регулятор громкости с предусилением?

Kubuntu 11.10
После перехода с гнома не могу понять, как в кедах сделать звук громче 100%
Гномовский регулятор позволял выставить до 150%, что на ноуте часто позволяло смотреть фильмы с низким уровнем звука.
Знаю как это сделать в VLC но хотелось бы иметь такую возможность на уровне системы, да и SMPlayer нравится больше

 

zolden
()

Подмена имени интерфейса (для обмана одного приложения)

Есть одно жопорукое приложение, в котором рукожопые авторы захардкодили имена интерфейсов на которых оно может работать.
Подозреваю, тупо перечислили eth1 eth2 eth3 eth4
В конфиге выставляется IP на котором оно работает/слушает, при старте оно видимо пытается проверить на каком интерфейсе этот адрес и падает.
Таким образом интерфейсы вида bond1 или vlan123 авторы обошли своим вниманием.
Есь ли способы обмануть приложение без перекомпиляции/давания по голове разработчикам?

zolden
()

Перечитать раздел после расширения без перезагрузки

Есть примонтированный по оптике с дискового массива раздел.
На хосте он разбит под LVM и отформатирован в ext3.
Возникла нужда увеличить соответствующий LUN на массиве.
Вопрос следующий: можно ли сделать так, чтобы хост увидел увеличение раздела без перезагрузки?

zolden
()

Переменная awk внутри системной команды вызываемой внутри awk

Есть осознанная необходимость преобразования текста (это вывод скрипта) вида

network_interface1 serial1 name1
network_interface2 serial2 name2
network_interface3 serial3 name3
network_interface4 serial4 name4
в вид
network_interface1 MAC1 name1
network_interface2 MAC2 name2
network_interface3 MAC3 name3
network_interface4 MAC4 name4
Знаю как это сделать некрасиво и неоптимально, но хотелось бы запихать это в однострочник на awk.
Пытался делать нечто вроде такого
script | awk '{system ("ip l l dev $1")....}'
но что-то не выходит каменный цветок (с ошибками Command line is not complete. Try option «help"sh: 255: command not found), подозреваю, внутрь вызова внешних команд нельзя передавать переменные awk
Хотелось бы умных советов и прочих примеров. Спасибо.

zolden
()

[Ubuntu11.04] Адрес не является папкой

При первичной настройке (например, открыть примонтированный диск или скачанный файл из браузера), Nautilus(больше вроде некому) за каким то хреном попросил выбрать «Файловый менеджер для Xfce» - я выбрал наутилус.
Теперь папки открываются нормально,но, например при попытке открыть .torrent из Chrome, выскакивает ошибка «Не удалось показать 'path/file'. Адрес не является папкой». При этом напрямую из файлового менеджера всё открывается нормально.
Проверял и в гноме и в юнити.
Гугление ничего толкового не даёт, у людей и в файрфоксе такое случалось и в арче. Махинации с обновлением mime-type database результата не дали, может не там копал.
Вопрос собственно один - wtf?

zolden
()

[баян] Shell переменная с переводами строки

Знаю, что тема старая, и даже поиск выдаёт много полезного, но что-то как-то не помог мне ни один вариант. Ситуация такая - есть скрипт которым прописываются настройки на линупс маршрутизаторе(вроде бы что-то типа zebos), выглядит примерно так:

#!/bin/bash

zebos_shell < EOF
command1
command2
...
commandN
EOF
т.е. команды вводятся в шелл отличный от баша.
Задача в том чтобы, передать в этот список команд команды сформированные в баше. Это легко сделать для одной команды:

#!/bin/bash
my_command="somecommand"
zebos_shell < EOF
command1
command2
${my_command}
...
commandN
EOF

но не получается запихать в my_command несколько команд (с переводом строки). Вариант

my_command="somecommand1\nsomecommand2\nsomecommand3" 
и манипуляции с IFS (пробовал $'\x10')успеха не принесли. Вариант типа eval/echo -e ${my_command} тоже не подходит, так как echo будет выполняться во «внутреннем» шелле.
Почему приходится пихать всё в одну переменную: во внешнем файле будет список маршрутов и их оптимальное добавление, я, кроме как конкатенацией в цикле придумать не смог

 

zolden
()

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

Запнулся на простейшей вещи...
Читаю файл из /proc:
#cat /proc/somefile
123
324
546
6567
576
blah-blah-blah

читаю его же в переменную для последующего разбора (ибо не осилил на awk разбор множественных полей с разными условиями за раз, а каждый раз перечитывать файл не кошерно, так как он очень быстро обновляется и значения становятся неактуальными):
#var=$(cat /proc/somefile)
вывожу и удивляюсь
#echo $var
123 324 546 6567 576 blah-blah-blah

Куда девались переводы строк и как их вернуть на место?
Многозначительная информация на всякий случай:
#echo $TERM
linux
#echo $IFS
#echo $BASH_VERSION
3.1.7(1)_release

zolden
()

sed: посимвольно обнулить значение параметра

Думаю вопрос простой для знатоков и не особо знатоков sed'а
Есть файл со строками вида
Param = Value

Value в моем случае некое хекс число (т.е. цифры + латинские буквы) неизвестной длины

Надо из
Param = 498ab28736

Получить
Param = 0000000000

т.е. заменить все символы Value на нули

Я застрял на этом этапе:
sed -i '/Param/s/ тут какой то трюк с подменой символов /g' file

zolden
()

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