![쉘 스크립트를 사용하여 SSH를 통해 원격 컴퓨터에서 파일을 삭제하는 방법은 무엇입니까?](https://linux55.com/image/16967/%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20SSH%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EC%9B%90%EA%B2%A9%20%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%82%AD%EC%A0%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
원격 컴퓨터에서 파일을 삭제해야 하는 쉘 스크립트를 작성 중입니다.
수동 작업 흐름:
- 원격 시스템에 로그인합니다.
ssh [email protected]
- 원격 컴퓨터(
domain
)에서 다음 명령을 입력합니다.cd ./some/where rm some_file.war
스크립트에서 이 작업을 어떻게 수행해야 합니까?
답변1
셸을 시작하는 대신 명령을 SSH 클라이언트에 전달하여 SSH 명령에 추가하여 실행할 수 있습니다.
ssh [email protected] 'rm /some/where/some_file.war'
cd
전체 경로를 지정하면 무언가를 삭제하기 위해 다른 곳으로 이동할 필요가 없으므로 이 단계를 건너뛸 수 있습니다.
다음 문제는 인증이다. 그냥 실행하면 비밀번호를 묻는 메시지가 나타납니다. 이를 대화형으로 입력하지 않으려면 공개 키 인증을 설정해야 합니다.
답변2
sudo를 사용하여 원격 파일을 삭제하려면 다음 명령을 실행해야 합니다.
ssh -tt user@host 'stty raw -echo; sudo rm /path/to/file' < <(cat)
답변3
ssh 명령에는 원격 명령을 실행하는 데 사용할 수 있는 명령 매개변수(명령의 마지막 매개변수)가 있습니다.
답변4
비밀번호 없는 키를 설정하고 이 명령을 ssh 명령의 일부로 추가하세요. 바라보다:http://www.dotkam.com/2009/03/10/run-commands-remotely-via-ssh-with-no-password/