web-dev-qa-db-ja.com

サーバーへのSSH、Sudo su-次にbashでコマンドを実行します

私は以下を持っています

#!/bin/bash

USER='scott'
PASS='tiger'

ssh -t [email protected] "Sudo su - http" 

これは機能しますが、後でスクリプトを実行できるようにしようとしていました。実行する場合は、-cまたは<を使用します。

スクリプトは次のようなgrepを実行します。

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

これはそれ自体でも問題なく動作しますが、それを行うにはhttpである必要があります。

スクリプトの出力をserver001にSCPで戻すこともできないので、ここで立ち往生しています。

どんなアイデアでもリレーでいただければ幸いです。ベン

11
Ben Coughlan

試す

ssh -t [email protected] '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を実行する唯一の理由は、別のユーザーで新しいシェルをすばやく開始する方法があることです。

あなたはおそらくSudo -u の代わりに Sudo su -

ssh -t [email protected] Sudo -u http script 
4
glenn jackman

私はパーティーに遅れていると思います。私の解決策:

ssh -t [email protected] "Sudo cat /etc/shadow"

cat/etc/shadowを目的のプログラムに置き換えます。

2
wbt11a