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를 통한 루트 로그인은 허용되어서는 안 됩니다. 이는 보안 관점에서 볼 때 매우 나쁜 습관입니다. )

관련 정보