たとえば、n個のサーバーがあります。
c0001234.cloud.com
c0005678.cloud.com
c0009123.cloud.com
このサーバーにログインしてファイルを編集するには、スクリプトを作成する必要があります。デフォルトでは、ファイルに変数があり、値を置き換える必要があります。サーバーに正常にログインできますが、ファイルを編集できます。すべてのサーバーのファイルを編集するスクリプトを作成する方法。ファイル名と変数名はすべてのサーバーで同じです。
string2=c0001234.cloud.com,c0005678.cloud.com,c0009123.cloud.com
for j in $(echo $string2 | sed "s/,/ /g")
do
ssh -o StrictHostKeyChecking=no -tt -q AppAccount}@$j stty < /dev/null
????????????????????????
done
答え1
目的は何ですかstty < /dev/null
?
まず、カンマを区切り文字として使用せず、代わりにスペースを使用します。これにより、後でループが単純化されます。
string2="c0001234.cloud.com c0005678.cloud.com c0009123.cloud.com"
for j in $string2; do
ssh -o StrictHostKeyChecking=no AppAccount@$j sed -i -e 's/var/value/g' file
done
これはinvar
に置き換えられます。value
file