如何修改ldapsearch脚本从文件读取用户ID批量查询邮箱
修改ldapsearch脚本实现批量用户ID查询
以下是适配批量查询需求的修改后脚本,同时保留了必要的错误检查和执行反馈:
#!/bin/bash # 检查是否传入用户ID文件路径参数 if [ "$1" = "" ]; then echo "用法: searchID.sh <用户ID文件路径>" exit 1 fi # 验证文件是否存在且可读 if [ ! -f "$1" ] || [ ! -r "$1" ]; then echo "错误: 文件 $1 不存在或无法读取" exit 1 fi # 循环读取文件中的每个用户ID并执行查询 while read -r uid; do # 跳过空行,避免无效查询 [ -z "$uid" ] && continue echo "正在查询用户ID: $uid" ldapsearch -x -b '' -LLL -h ldaphost.com -p 255 uid="$uid" mail >> outputs.txt done < "$1" echo "批量查询完成,结果已追加到 outputs.txt"
关键改动说明
- 参数逻辑调整:脚本现在接收用户ID文件路径作为参数,而非单个用户ID,同时新增文件有效性检查
- 批量读取处理:通过
while read -r uid循环读取文件每一行,-r参数防止反斜杠字符被意外转义 - 空行过滤:跳过文件中的空行,避免执行无意义的ldapsearch请求
- 进度反馈:增加查询过程中的用户ID提示,方便跟踪执行进度
执行方式
将所有需要查询的用户ID保存到文本文件(比如命名为user_ids.txt),然后执行:
./searchID.sh user_ids.txt
内容的提问来源于stack exchange,提问作者looktfiu
相关产品推荐
相关产品推荐

