Stefan
привет, коллеги кто-то пытался в баш скрипте передавать read через EOF? хочу когда меня перекинуло на сервак, чтоб я там мог ввести данные в переменную функции read ssh user@ip <<EOF docker images | grep transmitter-client read var echo $var EOF но по итогу игнорируется, это вообще возможно реализовать в баше?
V
вроде бы есть способы попроще это сделать
V
можно использовать следуюую donk архитектуру сделай простой скрипт на сервере который по кроны будет эту инфу тебе собирать а ты удалённо конектится и смотреть только файл
Stefan
вроде бы есть способы попроще это сделать
не подскажешь каким образом? мне короче переодически нужно подчищать ноды, но с конткретными цифрами тэгов контейнеров и в промежутке
George
я не понимаю задачу
George
вероятно, я бы сделал это по-другому
Alexey
read читает из stdin в момент выполнения read в интерпретаторе в stdin поступает твой скрипт. положи на машины скрипт, который делает то что ты хочешь и принимает параметром твои теги
Stefan
я не понимаю задачу
ну есть имейдж с названием transmitter-client у него после каждого деплоя появляется цифра, transmitter-client:1 transmitter-client:2 и тд мне когда-то нужно будет иногда подчищать ноды от лишних имейджей хочу чтоб я мог мануально вводить рейндж transmitter-client:{1..10} при помощи read
Dmitry
\$var экранировать надо
Stefan
\$var экранировать надо
но у меня скипается еще раньше, на read, нет приглашения ввести значения
Stefan
пробовал его еще на сервак закинуть, но тоже безуспешно
Stefan
и удаленно запускать скрипт
Navern
а почему так нельзя?
Stefan
ssh user@ip 'var=$(docker images|grep) && echo $var'
да тут не в переменной самой загвоздка, а в передачи значений через read
Navern
зачем передавать через read?
Stefan
зачем передавать через read?
хочу чтоб я мог мануально вводить рейндж transmitter-client:{1..10} при помощи read
Евгений
Navern
@smilingnavern вот он же пишет
Выглядит как странная "задача"
Евгений
Но для меня это выглядит немного странно
Navern
но вообще работает так же
Navern
'read var && echo $var'
Navern
у меня с ssh так отработало
Stefan
да почему странно то?)
George
че то хрень ты сделал
Navern
да почему странно то?)
Ну мб я просто чегото не понимаю в целом. Для чего это нужно. У меня не возникало подобных тем. Поэтому мне кажется странным
George
ssh user@ip sh -c "docker images | grep transmitter-client | awk '{print $3}' | xargs -r docker rmi"
George
как-то так
Евгений
 ~  cat test.sh #!/bin/sh read var echo $var  scp test.sh vm-eomelchenko: test.sh 100% 30 27.9KB/s 00:00  ssh vm-eomelchenko ./test.sh hello hello
Navern
sh -c не обязательно даже на самом деле и я бы юзал одинарные кавычки или эскейпил $
George
если нужно количество впихнуть, то двойные скобки самое то, т.к. они разрешают подстановку переменных $var во ВНЕШНЕМ шелле и в ссш уже улетает подстановленное значение
Stefan
transmitter-client:71 transmitter-client:72 transmitter-client:73 они хранятся на двух нодах кубера мне нужно чтоб когда я коннекчусь на ноды, я после выхлопа docker images указал верный рейндж тегов контейнеров, чтоб оно удалило только определенное кол-во имейджей, а не всё нахер убило
Stefan
собственно read var1 read var2 docker rmi transmitter-client:{$var1..$var2}
Karen
а разве через неинтерактивную сессию (```ssh user@host <<< stuff```) можно передавать интерактивный stdin?
Евгений
ssh user@ip 'docker images --filter reference="transmitter-client:*" && read var1 && read var2 && docker rmi transmitter-client:{$var1..$var2}'
Евгений
Вот так вот
Stefan
О_О
Stefan
пездес
Stefan
работает
Stefan
а почему это оно так странно...
Navern
у тебя синтаксис EOF был лишний
George
убери его нахрен
Stefan
обычными кавычкаим и всё
Karen
потоу что <<< неинтерактивный как и EOF
Karen
емнип
Stefan
у тебя синтаксис EOF был лишний
так я был уверен что он мастхэв(
Евгений
нахрена тебе read?
? Мне ничего не нужно
George
пример херовый
George
уберите рид
Евгений
Человек попросил как сделать рид
Stefan
пример херовый
почему?)) мне всего лишь нужно было понять почему read не пашет, в остальном уже не столь важно
George
export var1=1 export var2=2 ssh user@ip "docker images --filter reference=\»transmitter-client:*\» && docker rmi transmitter-client:{$var1..$var2}"
George
не ? так не пойдет?
Евгений
не ? так не пойдет?
ОН ХОЧЕТ ИНТЕРАКТИВНЫЙ ШЕЛ
George
ну, епть
Navern
никто не ззнает зачем)
George
да нахер он там?
Navern
но ты решаешь другую задачу
Евгений
Типикал IT чат - как сделать A - уберите А не нужно
George
вы не ту задачу решаете
Stefan
да нахер он там?
манульный ввод рейнджа
Navern
эту пусть чувак сам разбирается чо ему там нужно
George
да епть
Jürgen
проще mussh заюзать))
Евгений
+200
Это про тебя
George
если уж совсем приперло - рид можно сделать снаружи от ссш
Stefan
если уж совсем приперло - рид можно сделать снаружи от ссш
и ничего не передастсчя тогда на удаленный сервер
George
парни, тут читаешь, можно попкорном всегда запасаться
Stefan
пустой переменная будет