02-19-2014 06:46 AM - edited 03-18-2019 02:36 AM
Hi all,
what is the way to interact via ssh vith help of API and application plink to execute commands on a C20 looged in as admin?
I am able to execute commands as root for example to execute a reboot:
Batch script:
C:\putty\plink.exe -ssh IP_Addresss -l root -pw password -m C:\C20restartjob\c20.txt
c20.txt:
echo rebooting now
/sbin/reboot
Exit
I would like to be able to execute API commands but being logged as admin user.
What do I have to use in the c20.txt file so the command is recognized?
SW: TC 6.X
Thank you in advance for your hints.
Solved! Go to Solution.
02-19-2014 06:46 PM
Played a bit further - and found something that does work for plink.
C:\>PLINK.EXE -ssh testc60 -l admin -pw TANDBERG
< C20.TXT
where C20.TXT cotains:
xcommand boot
bye
The "bye" is really unnecessary if doing the reboot - but if you're issuing other xcommands then it's necessary to disconnect from the codec at the end of all your commands.
Wayne
--
Please remember to rate responses and to mark your question as answered if appropriate.
Please remember to mark helpful responses and to set your question as answered if appropriate.
02-20-2014 06:43 PM
Hi Matus,
Capturing the output is an easy one... where we've used the < in the command line above to take the input from a file, you can use the > to send the output to a file.
ie C:\>PLINK.EXE -ssh testc60 -l admin -pw TANDBERG
< C20.TXT > OUTPUT.TXT
or to append the text to an existing file instead of making a new one, use >> instead of >.
Wayne
--
Please remember to rate responses and to mark your question as answered if appropriate.
Please remember to mark helpful responses and to set your question as answered if appropriate.
02-19-2014 07:23 AM
Hello Matus -
I've never heard of plink, have you tried putty? Enter the IP address of the codec and when prompted, enter the username admin and associated password. If the password has not been changed it's TANDBERG by default I believe.
02-19-2014 07:26 AM
Another option is, if you can login via root, you can type in the command tsh and access the same commands as if you were logged in as admin via SSH.
02-19-2014 08:13 AM
Hi Patrick,
Explanation what is plink http://en.wikipedia.org/wiki/Plink.
The goal is to automate connection and execution of commands to codecs (cca 200).
Plink is connecting in a non interactive mode and I need to find out how to execute a API command so its recognized.
I would like to execute it with connecting as admin and not root.
02-19-2014 03:31 PM
To be honest I would not go that way.
Btw, there is a nice port of linux commands to windows
http://cygwin.com/ that offers other nice and handy command line clients
Sure you can pipe a coule of configuration parameters or commands. Maybe you can
also handle some feedback so that you can get active if one of these fails, but form just
looking at it shortly it does not look like that. (seems to be more or less a ssh command line client).
It is possible to pipe commands through tsh, but I would not recomend it!
You have the HTTPS API to configure and control the endpoint:
Its quite easty to handle (guess you can use perl python php for it or simply some command line tool like
curl, wget, ... In addition you get a result back so you can take action if some task failed.
I would go with https api access!
Please remember to rate helpful responses and identify helpful or correct answers.
Please remember to rate helpful responses and identify
02-19-2014 03:46 PM
You should not be using root - you can't assume it will be enabled (it's disabled by default and not available in all modes). Logging in as root will take you to the linux shell (not the supported API). Logging in as another user, like the user 'admin' takes you to the Codec command reference, which has a full API.
The API is fully documented on the product information pages. Reboot should just be 'xcommand boot'
For automation like this tho, the shell is overkill. You can use the same commands via the XML API and just do HTTP PUT/GET to the device with the correct XML documents to drive the system.
Tho I'd be more concerned why you are looking to automate rebooting the systems... that should not be necessary in the first place.
02-19-2014 04:04 PM
Wouldn't you just change the credentials you supply in the plink command line to the "admin" user rather than "root" as you've specified and put the correct CLI command in your C20.TXT file? Ie, if your admin username is "admin" with password "TANDBERG", you just change the details as follows:
Batch script:
C:\putty\plink.exe -ssh IP_Addresss -l admin -pw TANDBERG -m C:\C20restartjob\c20.txt
c20.txt
xcommand boot
bye
Personally, I like to create a separate user on my codecs for these types of things rather than using the default "admin" user.
Wayne
--
Please remember to rate responses and to mark your question as answered if appropriate.
Please remember to mark helpful responses and to set your question as answered if appropriate.
02-19-2014 05:17 PM
No that would not work, when using root you access the linux operating system.
There you can use ssh to remote execute linux commands:
$ ssh root@192.168.101.156 date
Thu Feb 20 02:14:36 CET 2014
If you would try the same with (admin or an other system user accout) it would fail:
$ ssh admin@192.168.101.156 xstatus
tsh: invalid option -- 'c'
Welcome to test
TANDBERG Codec Release TC7.0.1.264e160
SW Release Date: 2013-12-10
*r Login successful
OK
Anyhow, the https API is the way to go!
Please remember to rate helpful responses and identify helpful or correct answers.
Please remember to rate helpful responses and identify
02-19-2014 05:34 PM
Thanks Martin,
Yes, I am aware of the difference between logging in as "root" (and using the Linux commands) and loggin in as "admin" (and using the CLI commands).
I hadn't tried my suggestion - but have now. I got the same result as you posted above.
Strange thing is, if you leave off the -m and command file, and just use the rest, you can type in the command manually in to the plink window atfer it connects and it all works as expected:
C:\>PLINK.EXE -ssh testc60 -l admin -pw TANDBERG
Using username "admin".
Welcome to TESTC60
TANDBERG Codec Release TC7.0.2.aecf2d9
SW Release Date: 2014-01-18
*r Login successful
OK
←[?1034h
xcommand boot
*r BootResult (status=OK):
** end
OK
CUIL reboot request, restarting
tshell: Remote closed connection
Wayne
--
Please remember to rate responses and to mark your question as answered if appropriate.
Please remember to mark helpful responses and to set your question as answered if appropriate.
02-19-2014 06:46 PM
Played a bit further - and found something that does work for plink.
C:\>PLINK.EXE -ssh testc60 -l admin -pw TANDBERG
< C20.TXT
where C20.TXT cotains:
xcommand boot
bye
The "bye" is really unnecessary if doing the reboot - but if you're issuing other xcommands then it's necessary to disconnect from the codec at the end of all your commands.
Wayne
--
Please remember to rate responses and to mark your question as answered if appropriate.
Please remember to mark helpful responses and to set your question as answered if appropriate.
02-20-2014 04:03 AM
Thank you all for your suggestions,
the "reboot" I mentioned at the start of the post was just an example.
@Wayne DeNardi: I tryed your solution works like a charm. (Now I try to direct the output of the executed commands into a seperate file for each codec).
@Martin Koch & Steven Kapinos : Thank you for your suggestion.
As I am new to the xml API topic I have to learn to use it. (Reading the API documentation now)
If possilble please provide a real life example how to execute xml api in background and collet info in seperate file.
Goal is to be able to pull information (executed different commands) from the codecs (save them in text file for each codec seperate file) and proceed them later.
Imagine you want to create a overview for all codecs. If they are using a touch panel and how it is connected. (Direct mode or pairing mode)
02-20-2014 06:43 PM
Hi Matus,
Capturing the output is an easy one... where we've used the < in the command line above to take the input from a file, you can use the > to send the output to a file.
ie C:\>PLINK.EXE -ssh testc60 -l admin -pw TANDBERG
< C20.TXT > OUTPUT.TXT
or to append the text to an existing file instead of making a new one, use >> instead of >.
Wayne
--
Please remember to rate responses and to mark your question as answered if appropriate.
Please remember to mark helpful responses and to set your question as answered if appropriate.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide