sudo를 사용하여 SSH를 통해 여러 명령 실행

sudo를 사용하여 SSH를 통해 여러 명령 실행
#!/bin/bash
while IFS="," read -r f1 f2
do
 username="testuser"
 SSHPASS='abcde' sshpass -e ssh -t "$username@$f1" "sudo su - root -c 'yum -y install wget'"< /dev/null ;  
done < Input.txt

wget이제 스크립트 설치뿐만 아니라 실행도 하고 싶습니다 .
예: Grep을 실행하고 서비스가 실행 중인지 확인하고 불필요한 폴더를 삭제하는 등의 작업을 수행합니다.
난 노력 했어:

#!/bin/bash
while IFS="," read -r f1 f2
do
  username="testuser"
  SSHPASS='abcde' sshpass -e ssh -t "$username@$f1" "sudo su - root -c
  if [ -d /opt/xxxx ]; then
    rm -rf /opt/xxxx
  if [ -d /etc/xxxx ]; then
    rm -rf /etc/xxxx
  fi"< /dev/null ;
done < Input.txt

불가능할 것 같습니다. 원격 시스템에서 루트로 실행할 스크립트를 어떻게 전달합니까?

답변1

sudo를 사용하여 여러 명령을 실행하는 것은 다양한 방법으로 수행할 수 있습니다. https://www.cyberciti.biz/faq/how-to-run-multiple-commands-in-sudo-under-linux-or-unix/

예를 들어, followwing은 두 줄의 출력을 생성합니다. 첫 번째 줄은 로컬 컴퓨터의 타임스탬프를 포함하고 두 번째 줄은 "root"를 포함합니다.

sudo -- sh -c 'date; whoami'

원격 시스템에서 실행하려면 큰따옴표로 묶을 수 있습니다. 아래와 같습니다.

ssh [options] "sudo -- sh -c 'date; whoami'"

[옵션]은 원격 호스트 이름을 포함하여 ssh에 제공하려는 옵션으로 대체되어야 합니다.

관련 정보