from: http://systemsboy.com/2006/07/send-remote-commands-via-ssh.html
This is one of those “I’m posting it so I remember, ’cause I keep forgetting” posts. It’s also astoundingly cool, though, if you didn’t know about it. Which I didn’t until fairly recently.
If you’ve ever wanted to send a command to a remote computer without ever actually logging in to that computer, ssh is your friend. Yes, with ssh you can send commands directly to another system. Who knew?
I’ll keep this short and sweet. Here are some examples.
The basic form looks something like this:
ssh systemsboy@rhost.systemsboy.edu 'ls -l'
where “systemsboy” is actually your username on the remote host, and “rhost.systemsboy.edu” is your remote system. The command you’re sending is contained in single quotes.
Here is an example sending multiple commands:
ssh systemsboy@rhost.systemsboy.edu 'ls -l; ps -aux; whoami'
wherein each command is separated by a semicolon.
Finally, here is an example sending a command that requires user interaction:
ssh -t systemsboy@rhost.systemsboy.edu 'top'
Note the -t flag. That tells ssh that you’ll be interacting with remote shell. Without the -t flag top will return results after which ssh will log you out of the remote host immediately. With the -t flag, ssh keeps you logged in until you exit the interactive command. The -t flag can be used with most interactive commands, including text editors like pico and vi.
Sending remote commands via ssh is incredibly handy when writing shell scripts as it allows you to run your scripts locally even if those scripts are meant to effect changes on a remote machine. I just wrote a script, for instance, that sets up vacation mail forwarding for staff members. Without these remote commands I would have had to have staff members log directly onto the mail server and run the scripts from the command line, which I don’t think they’d be too happy about. With ssh remote commands, I can give them the scripts and they can run them right from their Desktops. Believe me, they much prefer this.
Credit where due, all information was obtained from Rambo’s post. Rambo, thanks. Whoever you are.
UPDATE:
For additional information about using this trick with variables within the remote command, see “Using SSH to Send Variables in Scripts.”
本文介绍了如何使用SSH(Secure Shell)直接向远程计算机发送命令,无需登录到目标系统即可执行操作。通过示例展示了发送单个命令、多个命令以及需要用户交互的命令的方法,特别强调了在编写shell脚本时的实用性,使得远程脚本执行更加方便。
588

被折叠的 条评论
为什么被折叠?



