2013-08-01 10 views
5

私は、リモートホスト上でrootのprivsなしで実行されないローカルスクリプトを持っています。私はsudoersファイルを編集して、ホームディレクトリ(/ home/username/script)からスクリプトを実行できるようにしました。スクリプトは結果を含むtxtファイルを作成しますが、出力を端末にリダイレクトし、出力をローカルマシンのテキストファイルにパイプします。リモートLinuxホストでローカルスクリプトを実行

リモートホスト、特にホームディレクトリからスクリプトを実行しないため、「ssh user @ hostname sudo -Sv < script.sh> results.txt」できません。

リモートホストにスクリプトをコピーする方法を誰かが知っていますか?&出力を取得中にrootとして実行しますか?

は、それを実行し、scpでスクリプトをコピーしますどのような援助

答えて

2

いただきありがとうございます。 1行でそれを行うには

scp script.sh [email protected]: 
ssh [email protected] sudo ./script.sh > results.txt 

ssh [email protected] 'cat > script.sh; chmod 755 script.sh; sudo ./script.sh' <script.sh> results.txt 

あなたはsudoにパスワードを入力する必要がある場合は、これは動作しません。 sshのstdinのすべてがスクリプトに入れられます。 Expectを使ってこれを行う方法があるかもしれませんが、そこにはあまり専門知識がありません。

+0

は迅速な対応をありがとう! sshキーは格納されていないので、scp'ingとssh'ingの両方で14文字のpswdを入力する必要があります。それを1行にする方法はありますか? –

+0

sudo(スクリプトの実行)のパスワードを入力する必要はありません。これはうまくいくようです!また、お時間をいただきありがとうございました! –

+0

これは質問に対する正しい回答ではなく、リモートマシンにプッシュしないで、リモートでコマンドを実行することでした。 – Rafareino

12

あなたはsudoを持っているし、ルートにはsudoを許可されている場合は、これは少し少ないの構文で動作します:

ssh -T [email protected] 'sudo su -' < script.sh

+5

+1これが受け入れられる回答である必要があります。 –

関連する問題