Dmitrii
Хотя я кажется понял почему. Щас попробую и расскажу
Dmitrii
Сделяль
Dmitrii
Короче фишко в том что в PS1 должна находиться либо функция либо expression. А я тупица пихал туда сразу $VAR который прочитывал выше из файла
No1
function prompt_command {
export PS1=$(~/bin/bash_prompt)
}
PROMPT_COMMAND=prompt_command
No1
в итоге что то такое?
Dmitrii
Да, только я через PS1 подстановку сделал
Dmitrii
Но проблема не решена до конца. Мне все равно надо как то зарелоадить переменные в родительском шелле
Dmitrii
Походу без создания доп-шелла тут не обойтись
No1
вы через промт ставите переменные и прокидываете все в ps1?
Dmitrii
expression в PS1 литерале.
Dmitrii
Но это походу самое непроблемное было
No1
да) вас ждут еще потеря последовательностей:) не хотите упростить задачу?
Dmitrii
Т.е. изначальная задача была такая, чтобы в текущий шелл применять пачти переменных окружения. Они в разных файлах записаны, кол-во одинаковое но значения разные. И вот в PS1 отображется (теперь уже) текущий выбор. Но теперь не понятно как их применить к родительскому шеллу не плодя дочерний
Dmitrii
Dmitrii
И вот после выполнения у меня как бы переменные менять значения. Чем то похоже на virtualenv, да, но там наверное используется дочерний процесс шелла и все происходит внутри него
Dmitrii
Такой огород городить не хотелось бы конечно
No1
а source используете как писали?
Dmitrii
Да, source используется внутри скрипта.
Dmitrii
Но это не дает никакого профита ибо как я уже выше писал — дочерний процесс не может переписать энв родителя. Хоть и получает полную копию от него.
Dmitrii
Походу тут нужны какие то жесткие костыли, если кто в курсе таких — дайте знать
Dmitrii
Если внутри скрипта сделать bash вызов, то естественно оно заспавнит новый процесс, но тут вложенность появляется. Но зато все работает. Но ведь девелоперы меня заебут вопросами "А че мне надо делать столько раз exit когда я переключался 10 раз на дню"
No1
. ./script вот как то так, насколько помню
Dmitrii
Это просто короткая нотация для source
No1
во геморрой :) и задачка вроде простая)))
No1
Dmitrii
Сам в ахуе если честно.
No1
exec bash -l
заменить его к чертям))) только хз такое поведение все сломает наверное
No1
Пробовали?)
Dmitrii
Ппц
Dmitrii
Чят, кароч смотрите технологии 2017го года
Dmitrii
ubuntu@app:/var/www/app:(de-01)$ echo $CAKE_SATELLITE
de-01
ubuntu@app:/var/www/app:(de-01)$ satellite us-01
ubuntu@app:/var/www/app:(us-01)$ echo $CAKE_SATELLITE
us-01
ubuntu@app:/var/www/app:(us-01)$
Dmitrii
Теперь немного магии...
Dmitrii
Чтобы все это работало надо:
1) Временный файл для "контекста"
2) Скрипт, который будем выполнять
3) Самая мякотка чтобы обойти лимитейшенсы bash: АЛИАС
Алиас пихаем в ~/.basrc:
alias satellite='function _satellite(){ source <(bash /usr/local/bin/satellite $1 $2 | sed "s/ //g; s/^/export /"); };_satellite'
Sergei
Dmitrii
Скрипт usr/local/bin/satellite пишет в файл контекста и высирает все переменные для установки в формате KEY=VAL списком
Dmitrii
Кстати функция в алиасе тоже не просто так.
Dmitrii
Алиасы не могут принимать аргументы. Эта функция решает эту проблему 😂
պլհկ
так а почему не exec?
Dmitrii
Потому что получится вот так:
Dmitrii
պլհկ
как?
Dmitrii
bash -l в процессах начинает торчать а не оригинальный шелл
Dmitrii
Подозреваю, что могут быть еще сайд эффекты из-за этого
Dmitrii
Так что кмк проще оставить алиас
Dmitrii
Тем более, он охуенно работает 😬🔥
No1
👍
Lisa
Добрый день! Поделитесь опытом, пожалуйста. Будет ли хорошим решением для мониторинга сетевых устройств связка Observium+Grafana?
Uncel
Uncel
Субъективщина, observium страдает местами NIH синдромом. Типа свой snmp поллер. Посмотрите например на nocproject.
Lisa
Примерно 100 L3/router+~500 L2
Lisa
Observium уже внедрен, нужно сделать "красивенькие дашборды (с)"
Uncel
Тогда страдать, делать интеграцию самим
kevit
btw, просто интересно, на какой машине обсервер летит, это 500 портов?
kevit
или девайсы
Uncel
Lisa
Lisa
Lisa
или девайсы
если я правильно поняла Ваш вопрос, то девайсы
kevit
а расскажите мне дорогие друзья что есть сейчас модного быстро показать логи девелоперам
Aleksei
ssh
kevit
елк для проекта больно тяжелый, я пользую https://github.com/mthenw/frontail + сислог сборку, но может что более кошерное придумали
No1
elk тяжелый потому что ява или что?
No1
эммм, ldap/ad не пробовали?:)
kevit
@schors это хорошее решение, но от другой задачи)
🏳️ Phil
Это пускание в прод. Быстро
kevit
у меня уже есть окружение и на нем уже есть логи в сислоге. их нужно показать разработчику ( возможно даже много раз подряд )
🏳️ Phil
Ну т.е. отладка на проде - вот оно да
No1
stateless окружение не делаете?)
No1
не понимаю сложности воспользоваться filebeat/rsyslog и сливать в централизованное место)
kevit
см. выше, по ссылке как раз фронтенд к централизованному месту
No1
так а почему тяжелый елк стал?)
kevit
он всегда и был тяжелый
Yuri
привет
Yuri
кто может знает, mongodb tools все на golang переписали? https://github.com/mongodb/mongo/tree/7928661bfc0dcccc95256e0df6424b057d588eec/src/mongo/gotools
Yuri
или я не туда полез?
Yuri
вроде бы на плюсах все было раньше