我需要从许多旧 HP 刀片服务器上的 iLO2 中删除所有现有用户帐户和配置。至于是否可以清除配置/日志并hponcfg <bay number> << EOF
粘贴我的脚本,我无法删除所有用户帐户。我尝试过
<USER_INFO MODE="write">
<DELETE_USER USER_LOGIN=*>
</USER_INFO>
但我收到语法错误,因为*
,似乎它只接受一个用户名。我找到了一个GET_ALL_USERS
返回所有用户名的命令,但我不知道如何在循环中解析它。我该怎么做?
编辑: 尽管已经有了可接受的答案,但如果有人碰上这个帖子,并且知道如何在不恢复出厂设置的情况下删除用户,我会很感激这个提示。有时删除除管理员之外的所有用户可能会有用。
答案1
为什么不运行命令来将 ILO 单元恢复出厂设置?
就像是:
hponcfg “Insert Blade Bay Number” << @
<RIBCL VERSION="2.0">
<LOGIN USER_LOGIN="Dontcare" PASSWORD="UsingAutologin">
<RIB_INFO MODE="write">
<FACTORY_DEFAULTS/>
</RIB_INFO>
</LOGIN>
</RIBCL>
答案2
这是一个简单的脚本,用于删除除管理员之外的所有用户帐户......
#!/bin/bash
HPONCFG=/usr/sbin/hponcfg
[ -x $HPONCFG ] || exit 1
MYTMPDIR="$(mktemp -d)"
trap 'rm -rf -- "$MYTMPDIR"' EXIT
GETUSER=$MYTMPDIR/get_user.xml
DELUSER=$MYTMPDIR/del_user.xml
cat > $GETUSER << EOF
<RIBCL VERSION="2.0">
<LOGIN USER_LOGIN="admin" PASSWORD="password">
<USER_INFO MODE="read">
<GET_ALL_USERS/>
</USER_INFO>
</LOGIN>
</RIBCL>
EOF
cat > $DELUSER << EOF
<RIBCL VERSION="2.0">
<LOGIN USER_LOGIN="admin" PASSWORD="password">
<USER_INFO MODE="write">
<DELETE_USER USER_LOGIN="%username%"/>
</USER_INFO>
</LOGIN>
</RIBCL>
EOF
LIST=$($HPONCFG -f $GETUSER | sed -n '/USER_LOGIN/p' | awk -F\" '{print $2}')
if (( $(echo $LIST | wc -w ) \< 2 )); then
echo "Nothing to remove"
exit
fi
for item in $LIST; do
if [ "$item" != "Administrator" ]; then
echo "Removing user: ${item}"
$HPONCFG -f ${DELUSER} -s username=${item} >/dev/null 2>&1
fi
done
第一部分读取 iLO 配置中的所有用户,然后第二部分删除除管理员之外的所有用户。