2016-09-09 4 views
0

バックグラウンドでsshによってリモートサーバで特定のスクリプトを実行したいと思います。
私はnohupについていくつかの解決策を見つけました。
しかし、nohupは、私は「2> & 1」を、既存のとないの違い何を知りたい「2> & 1」"ssh + nohup"のスクリプトに関する何が間違っています

なしで実行されていません。
nohupは "2> & 1"の式を必要としますか?

(私の悪い英語を理解してください)

これが私の 'iperf_server.sh' スクリプトです。

iperf -s -p 1 -w 128K 

そして、それは私のホストマシンコマンドです。

$ ssh [id]@[host] "nohup echo [password] | sudo -S [Home_dir]/iperf_server.sh > /dev/null &" 

$ ssh [id]@[host] "nohup echo [password] | sudo -S [Home_dir]/iperf_server.sh > /dev/null 2>&1 &" 

$ ssh -t [id]@[host] "nohup echo [password] | sudo -S [Home_dir]/iperf_server.sh > /dev/null &" 
Connection to iperf-server closed. 

$ ssh -t [id]@[host] "nohup echo [password] | sudo -S [Home_DIR]/iperf_server.sh > /dev/null 2>&1 &" 
Connection to iperf-server closed. 

これは、psコマンドの結果であるiperfのサーバーに

# ps -eLf | grep iperf | grep -v grep 

# ps -eLf | grep iperf | grep -v grep 
    00:00:00 sudo -S [HOME_DIR]/iperf_server.sh 
    00:00:00 sh [HOME_DIR]/iperf_server.sh 
    00:00:00 iperf -s -p 1 -w 128K 
    00:00:00 iperf -s -p 1 -w 128K 
    00:00:00 iperf -s -p 1 -w 128K 
# killall iperf 

# ps -eLf | grep iperf | grep -v grep 

# ps -eLf | grep iperf | grep -v grep 
+0

[シェルでは、 "2>&1"はどういう意味ですか?](http://stackoverflow.com/questions/818255/in-the-shell-what-does-21-mean) – Kenster

答えて

1

は末尾から&してください。

これはそれを行う必要があります。

ssh -t [id]@[host] "nohup echo [password] | sudo -S [Home_dir]/iperf_server.sh > /dev/null 2>&1" 

これは巨大なセキュリティリスクですちなみに。コマンドラインでのパスワードを使用しないでください!このようなパスワードを本当に使いたいのであれば、少なくともcat pwd.txt | sudo -Sのようにしてください。

関連する問題