execute part of shell script on remote machine

后端 未结 4 741
逝去的感伤
逝去的感伤 2021-01-26 03:49

I am logging into remote machine through shell script (by placing ssh command in script). After ssh command ,The remaining lines of the script are getting executed on the curre

相关标签:
4条回答
  • 2021-01-26 04:13

    Use ssh command with -t options. For example:

    ssh -t myremotehost 'uptime'
    name@myremotehost's password: 
    10:14:14 up 91 days, 21:20,  5 users,  load average: 0.20, 0.35, 0.36
    
    0 讨论(0)
  • 2021-01-26 04:17

    Is your login passwordless.

    If yes, you can just use pipe to execute the statement on the remote machine

    like:

    cat myshellscript.sh | ssh blah@blah.com -q
    
    0 讨论(0)
  • 2021-01-26 04:21

    One possible solution would be to use a heredoc as in the following example:

    $ ssh example.foo.com -- <<@@
    > ls /etc/
    > cat /etc/passwd
    > @@
    

    Basically everything between the @@ on the first line and the last line will be executed on the remote machine.

    You could also use the contents of a file by either reading the contents of the file into a variable:

    $ MYVAR=`cat ~/foo.txt`
    $ ssh example.foo.com -- <<@@
    > $MYVAR
    > @@
    

    or by simply performing the same action inside the heredoc:

    $ ssh example.foo.com -- <<@@
    > `cat ~/foo.txt`
    > @@
    
    0 讨论(0)
  • 2021-01-26 04:33

    ssh -t user@remotehost 'uptime' user@remotehost's password: 23:35:33 up 2:05, 3 users, load average: 0.79, 0.52, 0.60 Connection to remote closed.

    When you specify -t, it opens the terminal in remote machine and execute the command.

    0 讨论(0)
提交回复
热议问题