Executa o comando múltiplo através do SSH usando o sudo

3
#!/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

Agora, eu gostaria de não apenas obter wget instalado, mas também de executar um script.
Por exemplo: Grep e verificar se os serviços estão sendo executados, Remover pastas indesejadas, etc.
Eu tentei isso:

#!/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

Parece que não funciona. Como eu poderia passar um script para executar como root em uma máquina remota?

    
por Anna 05.04.2018 / 10:30

1 resposta

0

Executar vários comandos com o sudo pode ser feito de várias maneiras, veja link

Por exemplo, o followwing produzirá duas linhas de saída, a primeira contendo um timestamp de sua máquina local, a segunda 'root'.

sudo -- sh -c 'date; whoami'

Você pode dar isso ao ssh entre aspas duplas para executá-lo em uma máquina remota. Como o seguinte.

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

As [opções] devem ser substituídas por quaisquer opções que você queira dar ao ssh, incluindo o nome do host remoto.

    
por 29.04.2018 / 19:38