我想在服务器列表上运行并在使用screen.
手动,我会这样做:
screen -RD
./run_script
Run Code Online (Sandbox Code Playgroud)
并手动远程我会这样做:
ssh root@server "screen -RD && ./run_script"
Run Code Online (Sandbox Code Playgroud)
但实际上发生的是它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 ~]#
Run Code Online (Sandbox Code Playgroud)
你用-X开关。从手册页:
Run Code Online (Sandbox Code Playgroud)-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"
Run Code Online (Sandbox Code Playgroud)
(但你真的不应该允许以 root 身份登录 ssh,从安全的角度来看这是非常糟糕的做法。)
| 归档时间: |
|
| 查看次数: |
5960 次 |
| 最近记录: |