나는 fe1과 fe2를 가정하여 2개의 서버(Linux 2.6.32-696.el6.x86_64)를 가지고 있습니다.
명령을 실행해야 해요(서비스 Tomcat 시작/중지) fe1의 fe2에 있지만 필요합니다.루트로 sudo. 내가 사용하는 명령sudo 루트는sudo su
#!/bin/sh
host=fe2
user=`whoami`
sftp $user@fe2 << EOF
sudo su
service tomcat stop
bye
EOF
다른 방법으로 할 수 있나요?
답변1
다음과 같이 ssh를 통해 fe1에서 fe2로 명령을 보낼 수 있습니다.
ssh whoami@fe2 'sudo service tomcat start'
다음과 같이 내부를 ssh
사용하여 하나의 서버에서 다른 별도의 명령으로 여러 명령을 실행하려는 경우;
' '
ssh whoami@fe2 'sudo -s; service tomcat start; service tomcat status; other_commands; '
ssh
언급한 순서대로 모두 실행됩니다. 모든 stdin
요청은 명령 서버에서 가져오고 모든 출력은 stdout
서버를 stderror
통해 전송됩니다.ssh