SSH到服务器,Sudo su - 然后在bash中运行命令

Ben*_*lan 11 ssh bash shell aix sudo

我有以下内容

#!/bin/bash

USER='scott'
PASS='tiger'

ssh -t $USER@server006.web.com "sudo su - http" 
Run Code Online (Sandbox Code Playgroud)

这是Works,但我试图让它在之后运行一个脚本,如果我这样做,使用-c或<

该脚本像这样做一个grep:

grep -i "Exception:" /opt/local/server/logs/exceptions.log | grep -e "|*-*-*:*:*,*|" | tail -1 | awk -F'|' '{print $2}' >> log.log
Run Code Online (Sandbox Code Playgroud)

这也适用于它自己,但我需要http才能做到这一点.

我也不能把SCP的输出输回到server001,所以我被困在这里,

任何想法都会被接受赞赏.本

小智 7

尝试

ssh -t $USER@server006.web.com 'sudo -u http grep -i "Exception:" /opt/local/server/logs/exceptions.log | grep -e "|*-*-*:*:*,*|" | tail -1 | awk -F"|" "{print $2}" >> log.log'
Run Code Online (Sandbox Code Playgroud)

Sudo已经以不同的用户身份运行命令,因此无需再次使用su.

只做sudo su的理由是有一个快速的方法来启动另一个用户的新shell.


gle*_*man 5

你可能想要sudo -u而不是sudo su -

ssh -t $USER@server006.web.com sudo -u http script 
Run Code Online (Sandbox Code Playgroud)