在许多服务器上创建用户帐户

在许多服务器上创建用户帐户

我有一个users.txt包含以下内容:

ip1 user1 password1
ip2 user2 password2
....
ipN userN passwordN

我想在每台服务器上创建一个用户。我想在每台服务器上使用此脚本:

user_login="some_user7"
password="blablabla"

sudo adduser $user_login --gecos "First Last,RoomNumber,WorkPhone,HomePhone" --disabled-password

echo -e "$password\n$password\n" | sudo passwd $user_login

我不明白如何正确连接每台服务器并执行该脚本。

PS 我不想使用 SSH 公钥。我只想使用登录名和密码。

答案1

使用 ssh 在服务器上执行脚本很简单,例如:

cat script.sh | ssh someserver

但是,您可能不想在每台服务器上执行相同的脚本。您需要另一个脚本来读取您的 users.txt,并从该文件为 users.txt 中的每一行创建脚本文件,然后使用新创建的脚本作为输入调用 ssh。您可以使用 sed 替换某些模板文件中的用户和密码。

或者,你可以使用 awk 来完成所有工作:

awk '{system("ssh \""$1 " sudo adduser " $2 " --disable-password ; echo -e \\\""$3"\\n"$3"\\n\\\" | sudo passwd "$2"\"")}' < users.txt

相关内容