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

できないようです。リモートシステムでrootとして実行するスクリプトをどのように渡しますか?

ベストアンサー1

sudoを使用して複数のコマンドを実行することは、さまざまな方法で実行できます。 https://www.cyberciti.biz/faq/how-to-run-multiple-commands-in-sudo-under-linux-or-unix/

たとえば、followwing は 2 行の出力を生成します。 1行目はローカルコンピュータのタイムスタンプを含み、2行目は「root」を含みます。

sudo -- sh -c 'date; whoami'

リモートシステムで実行するには、二重引用符で囲むことができます。以下の通りです。

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

[オプション]は、リモートホスト名を含むsshに提供するオプションに置き換える必要があります。

おすすめ記事