반응형

ssh를 사용하여 원격 컴퓨터의 shell script를 실행하는 방법?

원격 컴퓨터에서 shell script를 실행하는 방법을 저에게 제안해주실 수 있나요?


A 컴퓨터와 B컴퓨터 모두에서 설정된 ssh가 있습니다. 저의 스크립트는 B컴퓨터에서 수행할 내용이 A컴퓨터에 있습니다.


----


9개의 답변 중 1개의 답변만 추려냄.


만약 A 컴퓨터가 Windows box라면 -m 파라미터와 함께 Plink(의 일부)를 사용하실 수 있고 원격 서버에 로컬(내 컴퓨터의) 스크립트를 실행할 것입니다.


plink root@MachineB -m local_script.sh

만약 A컴퓨터가 유닉스를 기반으로한 시스템이면 다음처럼 사용할 수 있습니다.

ssh root@MachineB 'bash -s' < local_script.sh

이를 수행하기 위해 스크립트를 원격 컴퓨터로 복사하실 필요가 없습니다.


----


(번역과 관련없는) 추가내용


ssh 뿐만이 아니라 rsh도 똑같은 방법으로 실행이 가능합니다.


ssh root@MachineB 'bash -s' < local_script.sh


ssh  계정명@원격호스트(IP)  수행할명령어 < 로컬_스크립트.sh


만약 원격 컴퓨터의 프로그램이 수행이 되지 않는다면 


로컬_스크립트.sh에서 export LD_LIBRARY_PATH를 원격컴퓨터에 맞게 설정하셔야 됩니다.


예) export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib

출처 : http://stackoverflow.com/questions/305035/how-to-use-ssh-to-run-shell-script-on-a-remote-machine

반응형
반응형

리눅스 표준 입출력 기호 쉘 스크립트 사용 시 (shell Script -input,output)

http://webdir.tistory.com/256 출처

리눅스 표준 입출력 리다이렉션

쉘에서 명령의 결과를 모니터로 출력하지 않고 파일로 저장할 수 있는데 이때 리다이렉션을 사용한다. 리다이렉션을 사용하여 출력과 입력의 방향을 지정해 줄 수 있다.


기호 방향                 의미

> 표준 출력         명령 > 파일 : 명령의 결과를 파일로 저장

>> 표준 출력(추가) 명령 >> 파일 : 명령의 결과를 기존 파일 데이터에 추가

< 표준 입력         명령 < 파일 : 파일의 데이터를 명령에 입력

기타 리다이렉션 기호의 쓰임은 아래와 같다.


명령 >& 파일명 : 명령이 실행된 표준 출력의 결과와 에러를 파일로 출력

명령 >>& 파일명 : 명령이 실행된 표준 출력의 결과와 에러를 파일로 덧붙여 출력

명령 >! 파일명 : 파일의 존재 유무와 상관없이 생성하고 명령이 실행된 표준 출력의 결과를 파일로 출력

명령 >&! 파일명 : 파일의 존재 유무와 상관없이 생성하고 명령이 실행된 표준 출력의 결과와 에러를 파일로 출력

명령 >>! 파일명 : 파일의 존재 유무와 상관없이 생성하고 파일에 덧붙여 출력

명령 >>&! 파일명 : 파일의 존재 유무와 상관없이 생성하고 명령이 실행된 표준 출력의 결과와 에러를 파일에 덧붙여 출력

명령A | 명령B : 명령A의 출력을 명령B 입력으로 사용하여 실행

명령A |& 명령B : 명령A의 출력과 에러를 명령 B의 입력으로 사용하여 실행


파일 디스크립터

표준 입력과 표준 출력 그리고 표준 에러를 쉘이나 시스템 프로그래밍에서는 숫자로도 표현할 수 있는데 이를 파일 디스크립터라고 한다.


구분         장치         파일 디스크립터

표준 입력 키보드 0

표준 출력 모니터 1

표준 에러 모니터 2

/dev/null 2>&1


/dev/null은 0 값을 갖는 null 파일이고 표준 에러(2)를 표준 출력(1)으로 리다이렉션 하라는 의미이다.

반응형

+ Recent posts