サーバーリストから実行して使用するときにリモートでスクリプトを実行したいと思います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によるルートログインは許可してはいけません。これはセキュリティの観点から見ると非常に悪い習慣です。 )