我有以下
#!/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,所以我被困在这里,
任何想法都会受到欢迎。 本
答案 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替换为您想要的程序。