SSH에서 인수로 명령을 전달하여 서버에서 해당 명령을 실행 한 다음 종료 할 수 있습니다.
ssh user@host "command to run"
여러 명령 목록에도 적용됩니다.
ssh user@host "command1; command2; command3"
또는 대안으로 :
ssh user@host "
command1
command2
command3
"
다른 사용자가 나보다 앞서 지적했듯이 su
서버에서 실행하면 스크립트에서 루트로 후속 명령을 실행하는 대신 새 셸이 시작됩니다. 당신이해야 할 일은, 하나를 사용하는 sudo
나 su -c
, 그리고와 SSH에 힘 TTY 할당 -t
(루트 암호를 입력해야하는 경우 필수) 스위치 :
ssh -t user@host 'su - -c "command"'
ssh -t user@host 'sudo command'
당신이하고 싶은 일을 성취하는 한 가지 방법으로 모든 것을 요약하면 다음과 같습니다.
#!/bin/bash
ssh -t user@172.1.1.101 "
sudo some_command
sudo service server_instance stop
sudo some_other_command
"
sudo
일반적으로 루트 비밀번호를 다시 요청하기 전에 몇 분 동안 권한 부여 레벨을 기억 하므로 루트 sudo
로 실행해야하는 모든 명령 앞에 추가 하는 것이 서버에서 루트로 명령을 실행하는 가장 쉬운 방법 일 수 있습니다. NOPASSWD
사용자 규칙을 추가 /etc/sudoers
하면 프로세스가 더 순조로워집니다.
이게 도움이 되길 바란다 :-)