#!/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に提供するオプションに置き換える必要があります。