3

したがって、sshジョブをバックグラウンドに送信する方法と同様の問題があります。

http://sshnet.codeplex.com/を使用してリモートLinuxOSでtcpdumpを実行するように自動化されたWindowsC#プログラムがあります。リモートLinuxでtcpdumpを実行し、切断した後も実行したままにしようとしています。

plinkを使用して多くのデバッグを行ってきましたが、目的の結果が得られないようです。私はもう試した:

plink root@10.5.1.1 bash -c "tcpdump -i eth0 -w test.cap"

ただし、ctrl + C(自動ソリューションでは機能しません)までsshclientを保持します。私はまた、次のバリエーションを試しました:

plink root@10.5.1.1 bash -c "tcpdump -i eth0 -w test.cap &"

ただし、コマンドがまったく実行されない(test.capが存在しない)か、すぐに終了する(test.capに1行含まれている)かのいずれかです。テスト中、私はpingを実行したままにしたので、キャプチャには 何かがあるはずです...

前述のリンクは画面の問題を解決しますが、リモートLinux OSは構成できず、画面がありません。どんな提案でも大歓迎です。

4

6 に答える 6

5

後者の場合、tcpdump切断するとプロセスが中止される可能性があります。試す:

plink root@10.5.1.1 bash -c "nohup tcpdump -i eth0 -w test.cap &"

のマンページを参照してくださいnohup。stdoutとstderrをファイルにリダイレクトすること、または出力がファイルに書き込ま/dev/nullれないようにすることを検討することもnohupできます。

plink root@10.5.1.1 bash -c "nohup tcpdump -i eth0 -w test.cap >/dev/null 2>&1 &"
于 2012-07-17T18:42:21.433 に答える
2

リモートアプリケーションの起動中に同様の問題が発生しました。このパターンは、Debianサーバーで機能しました。

ssh root@server "nohup /usr/local/bin/app -c cfg &; exit"

さらに 、別のテストでは、上記は機能しませんでした。コマンドがリモートサーバーで開始されませんでした。出口が機能しているように見える前に正常に戻るコマンドを追加します。

ssh root@server "nohup /usr/local/bin/otherapp &; w; exit"
于 2012-08-18T03:06:03.247 に答える
1

私も同様の状況にありました:(Windowsマシンで)ラズベリーパイへのSSH接続を開き、バックグラウンドでローカルスクリプトを実行するmsバッチスクリプトを作成したかったのです。Rajとfahdの両方の答えを組み合わせることが私にとってのトリックであることがわかりました。

私のmsバッチスクリプト:

plink -load "raspberry Pi" -t -m startCommand.txt

startCommand.txtの内容は次のとおりです。

nohup /home/pi/myscript >/dev/null 2>&1 &
w
exit

"> / dev / null 2>&1"は重要です!私は(難しい方法で)RPiのSDカードが非常に大きなnohup.outファイルによっていっぱいになり続けていることを知りました(そして完全なSDカードでは、RPiは正しくログインすることさえできませんでした)

推論:

-loadを使用してPuTTYに保存されたセッションをロードしました(パスワードの代わりに公開鍵/秘密鍵を使用して認証しているため、これを行いますが、これは単にホストに入力するのと同じである必要があります)

次に-t(Rajが推奨)

次に-mを使用して、そのファイル内のコマンドのリストをロードします

パラメータ「-t」がなく、「w」と「exit」がない場合、バッチスクリプトは実行され、「myscript」は実行されず、再度閉じられます。

于 2017-05-10T20:42:08.700 に答える
0

私も同じ問題を抱えていました。nohuptcpdumpが含まれているスクリプトがありました....&。sshが終了すると終了するため、sshを使用して実行することはできませんでした。私が思いついた解決策は非常に簡単でした。スクリプトの最後にsleep5を追加したところ、問題なく動作します。nohupを使用しても、tcpdumpが安全にバックグラウンドに戻るまでに数秒かかるようです。

于 2013-12-28T00:46:45.180 に答える
0

同じ問題が発生しましたが、「-t」オプションがnohupにとって重要であるように思われることがわかりました。「-t」オプションがないと、nohupが有効にならなかったことがわかりました。

ssh -t user@remote 'nohup tcpdump -i any -w /tmp/somefile &>/dev/null & sleep 2'

于 2014-03-06T01:46:47.710 に答える
0

少なくともIBMAIXでは、私はそれを釘付けにしたと思います

使っています

ssh -tq user@host "/path/start-tcpdump.ksh"

(認証はpublickキーによって行われます)。単純な「nohuptcpdump....&」を使用すると、一貫性のない結果が発生していました。機能する場合と機能しない場合があり、ブロックされることもあり、セッションを切断する必要がありました。これまでのところ、これは正常に機能しています。なぜ機能しているのかはわかりませんが、...

これは私のスタートです-tcpip.ksh

#!/usr/bin/ksh
HOST=$(uname -n)
FILTER="port not 22"
(tcpdump -i en1 -w $HOST-en1.cap $FILTER >/dev/null 2>&1 ) &
sleep 2
(tcpdump -i en2 -w $HOST-en2.cap $FILTER >/dev/null 2>&1 ) &
sleep 2
exit 0
于 2014-06-05T22:57:37.907 に答える