LINUX.ORG.RU

plink

 , ,


0

1

Подскажите, пожалуйста. У putty в причиндалах есть утилитка - plink. Пытаюсь ею удалённо поуправлять своими компом на линуксе. Если я посылаю стандартную линуксовую команду, например df plink.exe -ssh 192.168.0.101 -l юзер -pw пароль «df» или date plink.exe -ssh 192.168.0.101 -l юзер -pw пароль «date» - всё срабатывает изумительно. А если посылаю команду запуска плеера «play -up» - отвечает: bash: play: comand not found Если через Putty зайти на него под данным логином и паролем «play -up» работает. Сразу скажу - исполняемого файла play я на удалённом компе не нашёл. Нашёл только перловый файл «play».

Посоветуйте? куда копать? как запустить плеер из plink?



Последнее исправление: seroga_sod (всего исправлений: 1)

исполняемого файла play я на удалённом компе не нашёл. Нашёл только перловый файл «play».

Если у файла есть в атрибутах ″x″ он исполняемый. А, то что он содержит не машинный код, а перловый, это не так важно.

Скорее всего у вас разные пути ($PATH) для plink и putty, так как в первом случае шелл не интерактивный. Пробуйте вместо ″play″ указать полный путь.

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

Пробовал. Что-то пытается запустить и сразу ругается на line 2 файла play. А как и где прописываются пути для plink и putty?

seroga_sod
() автор топика
Ответ на: комментарий от seroga_sod

Пути не в putty/plink, а в пользовательской оболочке (shell), если это bash, то в ~/.bash_profile, ~/.bashrc, из которых могут дёргаться другие файлы, например /etc/bashrc.

И, play, ведь должен быть симлинком на sox, почему преловый скрипт то?

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

да это не тот play, это какой то самописный play, на который до меня не дошли никакие мануалы, разбираюсь методом тыка. Вот такую фигню выдаёт: C:\Program Files\Far>plink.exe -ssh 192.168.0.101 -l Логин -pw Пароль «/usr/atv/bin/play -stop» Can't locate log.pm in @INC (@INC contains: /usr/local/perl-5.6.1/MY /usr/local/perl-5.6.1/lib /usr/local/perl-5.6.1/site .) at /usr/atv/bin/play line 2. BEGIN failed--compilation aborted at /usr/atv/bin/play line 2.

Я так понял - это перловский компилятор ругается. Если я из putty захожу под данным логин/пароль - всё выполняется без путей - просто «play -stop».

seroga_sod
() автор топика
Ответ на: комментарий от seroga_sod

Есть решение в лоб — передать plink вызов интерактивного баша:

plink.exe -ssh 192.168.0.101 -l Логин -pw Пароль ″bash -l -c '/usr/atv/bin/play -stop'″

Или из putty делаете команду ″env″, смотрите что прописано в переменной PERL5LIB (или PERLLIB), дальше создаёте там башевский скрипт-обёртку:

#!/bin/bash
export PERL5LIB=бла-бла
exec /usr/atv/bin/play "$@"
и запускаете через plink этот скрипт (дав файлу права на выполнение).

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

Написал такой файлик:

#!/bin/bash export PERL5LIB=бла-бла exec /usr/atv/bin/play «$@»

Извиняюсь за глупый вопрос, а как ему дать права на выполнения?

seroga_sod
() автор топика
Ответ на: комментарий от seroga_sod

chmod u+x ИМЯ_ФАЙЛА

P.S. Надеюсь, что вместо бла-бла у вас там реальный путь до нужного модуля.

P.P.S. >На «bash -l» пишет -l нераспознанный параметр

Из putty это команду пробовали выполнить? bash должен распозновать эту опцию.

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

C:\Program Files\Far>192.168.0.101 -l логин -pw пароль "./skript -stop" 18/03/15-16:09:58 ERR!! (CORE) libatv.so: cannot open shared object file: No suc h file or directory (so.pm:9). 18/03/15-16:09:58 t:[345]: EXIT: fatal error.

Вот такую хрень выдал скрипт. Вместо блаблабла - путь взял из ″env″. Там ещё как-то хитро всё организовано. Этот play под рутом не работает, работает только под пользователем. Но вижу я его в mc только под рутом. Мож в этом дело. -l не работет, вероятно, потому что linux старинной сборки.

seroga_sod
() автор топика
Ответ на: комментарий от mky

Всё! Получилось. Спасибо большое. там ещё в export библиотеку какую то прописал - заработало!

seroga_sod
() автор топика
20 июня 2019 г.
Ответ на: комментарий от mky

Добрый день, помогите, посоветуйте.

Есть скрипт:

#!/bin/bash
export PWD=/home/atv 
export LD_LIBRARY_PATH=бла-бла
export PERL5LIB=бла-бла-бла
export ATV_HOME=тра-тата
export ATV_ROOT=ляляля
exec /usr/atv/bin/play "$@"
запускаю его так:
plink.exe -ssh IP -l atv -pw пароль "./skript -параметр"

При запуске этого скрипта с параметром, всё работает. Если вместо параметра указать имя файла - не работает. Пробовал файл вписывать с путём до него - не помогло. Пробовал из env все переменные в export скрипта забить - не помогло. Если запускать skript файл.avi через putty - всё работает.

seroga_sod
() автор топика
Ответ на: комментарий от seroga_sod

Пробовал файл вписывать с путём до него - не помогло

Вписывать в скрипт? Путь полный, от корня?

Если так, то нужно разбирать скрипт, что там такое странное. Ну ещё можно попробовать добавить опцию ″-t″ команде plink.exe, может поможет.

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

Вписывать в скрипт? Путь полный, от корня?

нет, вместо параметра скрипта при запуске plink.
"-t" не помогло. что-то плинковой консоли не хватает из того что есть в локальной консоли.

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