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

时间:2014-04-02 13:21:00

标签: bash shell ssh sudo aix

我有以下

#!/bin/bash

USER='scott'
PASS='tiger'

ssh -t $USER@server006.web.com "sudo su - http" 

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

脚本执行如下grep:

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

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

我也不能将脚本的输出发送回server001,所以我被困在这里,

任何想法都会受到欢迎。 本

3 个答案:

答案 0 :(得分: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'

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

执行sudo su的唯一理由是有一种快速的方法来与另一个用户一起启动一个新的shell。

答案 1 :(得分:4)

您可能需要sudo -u而不是sudo su -

ssh -t $USER@server006.web.com sudo -u http script 

答案 2 :(得分:2)

猜猜我迟到了。 我的解决方案:

ssh -t $USER@server006.web.com "sudo cat /etc/shadow"

并将cat / etc / shadow替换为您想要的程序。