#!/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에 제공하려는 옵션으로 대체되어야 합니다.