私は以下を持っています
#!/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で戻すこともできないので、ここで立ち往生しています。
どんなアイデアでもリレーでいただければ幸いです。ベン
試す
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
私はパーティーに遅れていると思います。私の解決策:
ssh -t [email protected] "Sudo cat /etc/shadow"
cat/etc/shadowを目的のプログラムに置き換えます。