LINUX.ORG.RU

Bash. Скриптом передать на удалённый комп (в локалке) команду.

 ,


0

2

Всем здравия! Несколько недель неспешно изучаю сабж, пока использую общую папку и файл для этого.

Суть такова, при определённом раскладе скрипт на местной машине должен послать команду удалённой. Всё в баше, удалённая тоже в баше будет работать. Обратной связи не надо, не курсач, не шабашка, занимаюсь своим. Я так понимаю, есть вариант заставить определённый порт слушать сеть? Прошу сильно не ругаться, мне тяжело совмещать работу на производстве, жизнь в деревне и изучение линукса.

И да, что почитать если скажете, буду благодарен и вопросы может рекурсивные отпадут.

★★★★★

Ответ на: комментарий от deadNightTiger

И как быть с неким неприятным моментом, что радиоканал может на какое то время «уснуть»? Тут с файлом было проще, файл есть, его проверяют на строки периодически, от подвисаний сети защита есть. А так, команда один раз передаётся, по идее нужна обратная связь, т.к. если не получит удалённый комп команду, нужно переспрашивать?

burato ★★★★★ ()

Вы изобретаете ansible на bash? Поверьте старому линуксоиду, кроме очень специальных случаев это дурная затея.

ugoday ★★★★★ ()
Ответ на: комментарий от burato

радиоканал может на какое то время «уснуть»?

while no(!) ping  to_remote_server; do
  sleep 1
done
ssh ... command
futurama ★★★★★ ()
Ответ на: комментарий от ugoday

Вы изобретаете ansible на bash?

Нет. Скорее пытаюсь оправдать использование файла как способ коммуникации нескольких машин, для себя.

while no(!) ping  to_remote_server; do
  sleep 1
done
ssh ... command


Эта конструкция будет крутиться, пока сеть не поднимется?
burato ★★★★★ ()
Ответ на: комментарий от anonymous

Беда с тем, что в момент выполнения команды (а она может выполняться 9 месяцев, ну команда такая, что поделаешь) ssh-соединение может запросто отвалиться, особенно если команда не отправляет никаких сообщений обратно.

Я бы наверное запушил в планировщик типа того же ATD: если уж команда at примет задание на выполнение, то дальше в общем-то только от самого задания зависит, выполнится оно правильно или нет.

DRVTiny ★★★★★ ()
Ответ на: комментарий от burato

В смысле?

atd - это древний как Г мамонта демон, который через свой клиент, команду at, принимает задание в виде, например:

at 'now +1 min' <<<'do something'

- ну и выполняет эту команду через заданное количество времени. Можно и сразу (если просто now указать).

Штука исключительно полезная - для меня полная загадка, почему сейчас планировщиком никто не пользуется. Склероз у всех что ли...

DRVTiny ★★★★★ ()

для bash

echo «ls -l» > /dev/tcp/10.10.10.10/4444

правильные адрес хоста и порт, на котором сидит удаленный сервер подставь сам

ananas ★★★★★ ()

Несколько недель неспешно изучаю сабж, пока использую общую папку и файл для этого.

ЯННП.

при определённом раскладе скрипт на местной машине должен послать команду удалённой. Всё в баше, удалённая тоже в баше будет работать. Обратной связи не надо... Я так понимаю, есть вариант заставить определённый порт слушать сеть?

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

В зависимости по зависимости от задачи используйте либо что-то типа netcat’а, либо что-то типа inetd (вплоть и вовсе до sshd, как тут уже́ советовали).

мне тяжело совмещать ... и изучение линукса.

Помилуйте, зачем вам изучать такую низкоуровневую вещь! В особенности сейчас, когда даже такие простые не освоены.

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от burato

а тебе обязательно авторизация нужна? на той стороне вешаешь обработчик через xinetd или netcat/socat и никаких тебе паролей или прочей возни с авторизацией

ananas ★★★★★ ()
Ответ на: комментарий от ananas

это именно строка

То есть все совпадения случайны?

а куда и как она отправляется - в man bash

Цитату, пожалуйста.

или гугл

Ссылку, пожалуйста.

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

ты троллишь или действительно команда ls -l ввела тебя в ступор? О_о

Anoxemian ★★★★★ ()
Ответ на: комментарий от ananas

ты троллишь

Я, кажется, перестаю понимаю, что значит это слово. Так что не знаю.

или действительно команда ls -l ввела тебя в ступор?

Ступор? Да господь с вами, вошел бы я в ступор, я бы никак не начал немедленно задавать уточняющие и наводящие вопросы.

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

Я, кажется, перестаю понимаю, что значит это слово. Так что не знаю.

Троллить, то есть постить на лурке ЛОРе.

burato ★★★★★ ()
Ответ на: комментарий от ananas

man -P cat bash | grep tcp

Так. Такой костыль должен вывалить что-то из (info "(bash) Redirections"). Вы хотите сказать, что Баш таки научился слушать порт?

https://google.com

Содержательная часть отвалилась. Впрочем, сейчас-то она уже не нужна.

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от burato

Троллить, то есть постить на ЛОРе.

Хе-хе.

Так как оно там продвигается? Вы уловили, в чем принципиальная разница меж двумя вариантами: с надсервером типа inetd или sshd или со со слушаньем порта?

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

Вы хотите сказать, что Баш таки научился слушать порт?

а при чем тут «слушать»? заголовок поста перечитай еще раз

ananas ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.