複数のサーバーからユーザーを削除するには、bashループを作成するのに役立ちます。

複数のサーバーからユーザーを削除するには、bashループを作成するのに役立ちます。

繰り返しbashの新機能です。 txt ファイルを読み取ってリストされた各サーバーからユーザーを削除するには、スクリプトが必要です。これはどのように見えますか?

for user in $(cat /tmp/server-list.txt); do userdel -f $USERID; done

実行されますが、サーバーでユーザーアカウントが見つかりません(「id」は存在しません)。私は何が間違っていましたか?

ベストアンサー1

あなたが次のようであるとしましょう:

  1. サーバーのIPアドレスのリストを含むテキストファイルを繰り返してみてください。各アドレスは新しい行に表示されます。
  2. Ubuntuユーザーとして各サーバーにSSHでアクセスし(ユーザーを自由に変更可能)、各システムから特定のユーザーを1つ削除しようとしています(例: "john smith")
  3. 一行にすべて

USERID="john smith"; cat /tmp/server-list.txt | while read IP_ADDRESS; do ssh -q -n ubuntu@$IP_ADDRESS "userdel -f $USERID" ; done

複数のユーザーと複数のサーバーがある場合は、入れ子になったループまたは配列を使用する必要があります。

おすすめ記事