我需要从 100 个远程服务器收集用户信息。我们有用于身份验证的公钥/私钥基础设施,并且我已经配置了ssh-agent
命令转发密钥,这意味着我可以在没有密码提示的情况下登录任何服务器(自动登录)。
现在我想在所有服务器上运行一个脚本来收集用户信息(我们在所有服务器上有多少个用户帐户)。
这是我收集用户信息的脚本。
#!/bin/bash
_l="/etc/login.defs"
_p="/etc/passwd"
## get mini UID limit ##
l=$(grep "^UID_MIN" $_l)
## get max UID limit ##
l1=$(grep "^UID_MAX" $_l)
awk -F':' -v "min=${l##UID_MIN}" -v "max=${l1##UID_MAX}" '{ if ( $3 >= min && $3 <= max && $7 != "/sbin/nologin" ) print $0 }' "$_p"
我不知道如何使用 ssh 运行这个脚本而无需交互?
由于您需要登录远程计算机,因此“没有 ssh”没有办法做到这一点。然而,ssh
接受登录后在远程计算机上执行的命令(而不是它将启动的 shell)。因此,如果您可以将脚本保存在远程计算机上,例如作为~/script.sh
,您可以在不启动交互式 shell 的情况下执行它
$ ssh remote_machine ~/script.sh
一旦脚本终止,连接将自动关闭(如果您没有故意配置它)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)