スクリプトを作成して、スクリプトにコマンドを入力してプロセスを強制終了させます。
私はほとんど動作していますが、私の問題は現在、それを殺すために2回sshする必要があります1)プロセスIDを取得する2)プロセスを殺す-私は一度にこれを行うことを望み、私は試しました配管しますが、私はそれを動作させることができないようです。
ここに私の現在の作業バージョンがあります:
ProcessNumber=`ssh user1@server1 -p22222 ps -ef | awk '/[s]sh -f -N -T -R32400:localhost:32400 remote@remote/{print $2}'`
ssh user1@server1 -p22222 "kill $ProcessNumber"
そして、ここに、私が動かないスクリプトを示します。
ssh user1@server1 -p22222 kill `ps -ef | awk "/[s]sh -f -N -T -R32400:localhost:32400 remote@remote/{print $2}"`
2番目のものを一度に機能させるための提案はありますか?
ps -ef
の出力の解析は少し注意が必要です。 pgrep
を使用することをお勧めします
pgrep -f `ssh -f -N -T -R32400:localhost:32400 remote@remote`
または、単にpkill
ですべてを減らします:
ssh user1@server1 -p22222 "pkill -f 'ssh -f -N -T -R32400:localhost:32400 remote@remote'"
このいワンライナーのようなものがそれを行うことができます:
ssh user1@server1 -p22222 "kill \$(ps -ef | awk '/[s]sh -f -N -T -R32400:localhost:32400 remote@remote/{print \$2}')"
エスケープにはまだ調整が必要な場合があります(テストしませんでした)。