셸 스크립트를 사용하여 SSH를 통해 원격 컴퓨터에서 파일을 삭제하는 방법은 무엇입니까?


32

Shell Script를 통해 원격 컴퓨터에서 파일을 삭제 해야하는 Shell Script를 작성 중입니다.

수동 흐름 :

ssh username@domain.com

.. 도메인에서 :

cd ./some/where
rm some_file.war

그 임무를 수행하는 방법?

답변:


49

당신은 전달할 수 있습니다 sshssh 명령에 쉘을 추가 클라이언트에게 쉘을 시작하는 대신 실행할 명령을 .

ssh username@domain.com 'rm /some/where/some_file.war'

cd전체 경로를 지정하는 한 무언가를 제거하기 위해 위치로 이동할 필요가 없으므로 건너 뛸 수있는 또 다른 단계입니다.

다음 질문은 인증입니다. 방금 실행하면 암호를 묻는 메시지가 나타납니다. 이것을 대화식으로 입력하지 않으려면 공개 키 인증을 설정해야합니다.


3
나는 -c가 cipher_spec이라고 생각했다. 명령 전달에 -c가 필요하다고 생각하지 않았습니다.
Scott C Wilson

빠른 답변을 주셔서 감사합니다. 이 답변은 솔루션에 가장 많은 부분이 포함되어 있으므로 @Caleb은 이번에 진드기를 얻었습니다.
mico

우리는 추가해야 -f으로 rm원격 호출을 실행?
Fedir RYKHTIK

1
@Fedir NO! 질문은 디렉토리가 아닌 파일에 대해 구체적으로 묻고, 경고 또는 오류가 발생 rm했는지 여부는 사용자가 무엇을 기대하고 무엇을 무시하는지 왜 알지 않는 한 호출자에게 전달되어야합니다. 주어진 시나리오에서 필요한 옵션 만 사용하면 많은 실수와 나중에 디버깅하는 것을 피할 수 있습니다.
Caleb

1
@Fedir -f옵션 rm은 짧고 --force존재하지 않는 파일이나 가짜 인수에 오류가 있는지 여부에 영향을줍니다. 일반적으로 명령은 대화식이 아닌 쉘에서 실행되며 기본적으로 대화식이 적습니다. 그러나 대화식 프롬프트가 표시되지 않거나 직접 대화식으로 설정을 수정해야합니다. 스크립팅하는 경우 어쨌든 해당 문제가 없어야하며 대화 형 셸 (치명적인 오타가있는 경우) -I--interactive=never있으면 원하는 동작을 설정 하는 데 사용해야합니다 .
Caleb


2

ssh 명령에는 원격 명령을 실행하는 데 사용할 수있는 명령 매개 변수 (명령의 마지막 매개 변수)가 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.