leon
leon

Reputation: 5101

Run Linux command remotely from Window based application

I want to run Linux command remotely from Window based Qt C++ application programmatically. What is the simpliest way to do it?

Upvotes: 0

Views: 1464

Answers (5)

FilBot3
FilBot3

Reputation: 3718

You could use Plink if you are on Windows whatever version. If you can run PuTTY, then you can run PLink. PuTTY Plink Documentation. Using that you could use the executable, and automate things. Otherwise, if you're looking for a specific programming language, they'd still be dependent upon some SSH Library. If you're writing your own installer, you could include the PLink.exe in your installer, and distribute it with your application.

From the documentation page:

Z:\sysosd>plink login.example.com 'echo "Hello World"'

Upvotes: 0

Aniket Inge
Aniket Inge

Reputation: 25723

One way to do it is, to have a client-server model, the server resides in linux and client can be your computer. That way you can send commands to the server and have its output thrown at you. That's one way I think of this problem.

Use UPnP to get past the firewall(or use NAT traversal or UDP/TCP hole punching). Otherwise (without forwarding the port) it would be impossible to reach the server.

The second is to write your own RSH and SSH utility. (or use putty or other pre-existing software)

Upvotes: 1

Jacek Sokolowski
Jacek Sokolowski

Reputation: 597

Simple server-side program witch will handle the requests and then using ex system() function will be this "remotely" part of solution.

And on client-side simple text field handled by function witch will be able to connect to server to send command run request.

The most important thing in this solution will be to take care about security.

Upvotes: 1

Hakan Serce
Hakan Serce

Reputation: 11266

Simply connect to telnet server on the linux using sockets, and send the commands.

This actually requires very little code. Check the Java version here:

Sending telnet commands and reading the response with Java

You can do similarly with Qt/C++ as well.

Upvotes: 1

OmnipotentEntity
OmnipotentEntity

Reputation: 17131

You need some sort of server on the Linux machine and your Windows machine will be a client. I'd say the easiest way would be just make a php script to run your command and drop it in your www root and have your Windows machine fetch that URL.

At the end of the day, without knowing what your requirements are with regard to security and with regard to what kind of commands you'll be running is, it's very difficult to give a definitive answer to this question.

Upvotes: 1

Related Questions