【问题标题】:Shell script to check if user exist in remote server用于检查用户是否存在于远程服务器中的 Shell 脚本
【发布时间】:2023-03-14 12:50:01
【问题描述】:

如果用户存在,我有检查远程服务器的脚本,但它只检查第一个用户。该脚本读取服务器列表的文本文件并通过 SSH 连接到每个服务器,然后检查 id 是否存在:

export users

for SERVER in `cat ./serverlist.txt`
do
        ssh $SERVER <<+
        set -A users "John" "Mary" "Joe" "Ana" "Jake" "Jana" "Ben" 
        for ids in {0..6}
        do
          id ${users[$ids]}
        done
+
done 

请帮忙

【问题讨论】:

  • 为什么要在遥控器上设置变量?只需执行for ids in John Mary ...,或在本地分配变量并遍历本地变量。

标签: shell unix ksh


【解决方案1】:

使用'+'防止本地shell扩展here文档中的变量。

for SERVER in `cat ./serverlist.txt`
do
        ssh $SERVER <<'+'
        set -A users "John" "Mary" "Joe" "Ana" "Jake" "Jana" "Ben" 
        for ids in {0..6}
        do
          id ${users[$ids]}
        done
+
done

仅供参考。

for server in `cat ./serverlist.txt`
do
        ssh -- "$server" <<'+'
        set -A ids "John" "Mary" "Joe" "Ana" "Jake" "Jana" "Ben" 
        for id in "${ids[@]}"
        do
          id "$id"
        done
+
done 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-30
    • 2014-01-31
    • 1970-01-01
    • 2014-08-21
    • 2014-07-06
    • 2020-08-16
    • 2019-06-20
    • 1970-01-01
    相关资源
    最近更新 更多