screenコマンドとsshを使用してリモートコンピュータでスクリプトを実行するには?

screenコマンドとsshを使用してリモートコンピュータでスクリプトを実行するには?

サーバーリストから実行して使用するときにリモートでスクリプトを実行したいと思いますscreen

手動で次の操作を行います。

screen -RD
./run_script

リモートでリモートで次の操作を行います。

ssh root@server "screen -RD && ./run_script"

しかし、何が起こっているのかは、それが実行中であり、screen -RD私が入力したときにのみexitスクリプトの実行を開始することです。

screen -RDもしそうなら、リモートタスクを実装してから最初のスクリーンターミナルでコマンドを実行する方法は?

編集#1:

[root@edge14 ~]# screen -r -X /nfs/ops/component/edge/scripts/move_stuck_aggfiles_to_hadoop.sh && screen -RD
No screen session found.
[root@edge14 ~]# 

答え1

-Xスイッチを使用してください。マニュアルページから:

  -X   Send  the specified command to a running screen session. You can
        use the -d or -r option to tell screen to look only for attached
        or detached screen sessions. Note that this command doesn't work
        if the session is password protected.

これを実際にスクリーンを見ることと結合しなさい:

ssh root@server "screen -dr -X ./run_script && screen -RD"

(しかし、あなたは本物SSHによるルートログインは許可してはいけません。これはセキュリティの観点から見ると非常に悪い習慣です。 )

関連情報